【发布时间】:2019-05-06 10:31:07
【问题描述】:
我认为这行代码
@User.IsInRole("employee")
登录用户是员工角色,但此方法返回 false。
但它适用于管理员角色
@User.IsInRole("admin")
有什么问题,我该如何解决?
【问题讨论】:
-
您使用的是什么身份验证方法?你检查数据库表中的角色映射了吗?
标签: c# asp.net-mvc razor
我认为这行代码
@User.IsInRole("employee")
登录用户是员工角色,但此方法返回 false。
但它适用于管理员角色
@User.IsInRole("admin")
有什么问题,我该如何解决?
【问题讨论】:
标签: c# asp.net-mvc razor
我在我的代码中添加了this,它成功了!
this.User.IsInRole("employee")
【讨论】:
确保 AspNetUserRoles 中存在角色为“employee”的用户。
你可以尝试一个简单的查询来确认用户是否真的在角色中
Select roles.UserId,rolename.Name from [XXX].[dbo].[AspNetUserRoles] as roles
inner join [XXX].[dbo].[AspNetRoles] as rolename on roles.UserId = 'XXXXXX'
如果查询运行并且您没有看到列出的“员工”角色,这将是原因。
【讨论】: