User.IsInRole(“ Admin”)在_Layout.cshtml中始终返回false)>

问题描述 投票:0回答:2

在layout.cshtml中,我正在检查当前用户是否是管理员。如果是这样,则显示另一个菜单。但是,即使使用管理员登录,它也总是返回false。我正在使用下面的代码:

@if (User.Identity.IsAuthenticated == false)
{
    <li><a href="\Users\Login">Log in</a></li>
    <li><a href="\Users\Register">Register</a></li>
}

else
{
    <li><a href="\Users\Logout">Log out</a></li>
    if (User.IsInRole("Admin"))
    {
        <li><a href="\Users\List">Users List</a></li>
    }
}

在layout.cshtml中,我正在检查当前用户是否是管理员。如果是这样,则显示另一个菜单。但是,即使使用管理员登录,它也总是返回false。我正在使用...

c# web isinrole
2个回答
0
投票

检查您是否启用了角色管理器。


0
投票

我刚刚发现了错误所在,并且相信我,这确实很愚蠢。在我存储在SSMS中的数据库中,角色“ Admin”和“ User”被存储为“ Admin”和“ User”,这意味着默认情况下会添加额外的空格。因此,当我将if(User.IsInRole(“ Admin”))更改为if(User.IsInRole(“ Admin”)))时,它可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.