我知道这个问题已经有很多话题了,但是我已经尝试了几种解决方案,但是都不能使其正常工作。
所以,我正在尝试在我的视图中验证当前登录用户的角色。根据StackOverflow中大部分关于此问题的话题,我只需要执行以下操作:
@User.IsInRole("Admin")
很不幸,即使当前登录用户的AspNetUsers表中的“Role”列填有“Admin”,此代码始终返回false。
我还尝试了以下方法,但它显示“UserManager在当前上下文中不存在”。
<p>@UserManager.GetRoles(userId)</p>
我怀疑注册时没有正确设置用户的角色。我的AspNetRoles表已经正确填充,但是AspNetUserRoles表为空。
我该如何排除故障,找出应用程序中的问题,以便我可以使用@User.IsInRole(...)指令?
非常感谢您的帮助。
Role
列是Admin
”,但接着又说“AspNetUserRoles表为空”。如果有一个连接/交叉引用表,那么AspNetUsers表上就不会有一个Role列。 - krillgarUser.IsInRoles()
的地方设置断点,并查看用户对象上的Roles
属性来调试此问题。我有99.9999%的把握这个集合将是空的。 - krillgar