我知道有很多关于这个问题的主题,但我已经尝试了几种解决方案,无法使其工作。ASP.net MVC - 获取当前记录的用户角色
所以,我想在我的视图中验证当前记录的用户角色。正如有关此内容的StackOverflow主题的重要组成部分提到,我只需要做:
@User.IsInRole("Admin")
很不幸,这始终返回false甚至与“角色”栏,在AspNetUsers表,当前登录的用户是填充“管理员”。
我也尝试了下面的方法,但它说“UserManager在当前上下文中不存在”。
<p>@UserManager.GetRoles(userId)</p>
我的一个嫌疑人是我在注册时没有正确地为用户设置角色。我的AspNetRoles表正确填充,但AspNetUserRoles表为空。
如何解决此问题以查找我的应用程序出现了什么问题,以便我可以使用@ User.IsInRole(...)指令?
在此先感谢您的帮助。
你说“甚至在该用户的AspNetUsers表中的'角色'列是'Admin'”,但是然后说“AspNetUserRoles表是空的”。如果有一个连接/交叉引用表,那么AspNetUsers表上就不会有一个Role列。 – krillgar
@krillgar感谢您的回复。我不确定我是否完全理解你的观点,但你是否说我的AspNetUsersRoles表不应该是空的? – myusername21
是的。由于用户可以有很多角色,并且许多用户将处于同一个角色中,所以AspNetUsers表上不应该有角色列。因为你的AspNetUserRoles表是空的,那告诉我没有用户实际上分配了角色。 – krillgar