【发布时间】:2019-05-15 14:06:05
【问题描述】:
我正在使用 Razor-Pages 开发网络应用程序。在我的 _Layout.cshtml 文件中,我想根据当前用户的角色更改菜单。
因此,我使用User.IsInRole(string role),但它总是返回 false。
在类似的问题中,我读到无法在登录后立即检索用户角色。但是,我不明白为什么会这样。
我的代码:
@if (User.IsInRole(Roles.Admin.ToString())) {
<li><a asp-page="/AdminMenuPoint">Admin Menu</a>a/li>
}
我的角色枚举:
public enum Roles {
Supervisor, Admin
};
总结一下:为什么User.IsInRole() 不能用于我的主页(登录后)?
提前致谢。
【问题讨论】:
-
你在 web.config 中有
enabled="true"和roleManager吗? -
您是否连接了 ASP 身份以使用您的
Roles枚举?在您的启动文件的ConfigureServices方法中应该有类似services.AddIdentity<User, Role>()的内容。 -
@LeonardoSeccia 我刚刚做了。它仍然不起作用。
-
@st_stefanov 的评论尝试:
<modules> <remove name="FormsAuthenticationModule" /> <remove name="RoleManager" /> </modules>
标签: c# asp.net asp.net-core razor