在MVC4中,我使用Roles.IsUserInRole来检查给定用户是否处于某个角色 . 但是,使用MVC5我不能再这样做了......
起初,它要求我在web.config上启用RoleManager,但后来我发现microsoft从Web.Security转移到了Microsoft.AspNet.Identity .
我现在的问题是,使用Microsoft.AspNet.Identity如何执行类似于Roles.IsUserInRole的操作?和/或在角色和用户之间创建关系 .
顺便说一下,我还在尝试理解新的身份验证方法(ClaimsIdentity?) .
2 回答
您应该阅读http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx了解Identity 2.0的基础知识!
还有一个完整的演示项目可以帮助您入门:https://github.com/TypecastException/AspNet-Identity-2-With-Integer-Keys
如果你把这作为你的身份基础的基础,你最终会得到这样的东西:
上面的帖子非常有用(感谢Serv,如果我的名声允许,我会投票) . 它帮助我解决了我遇到的一些问题,只做了一些小改动,以适应我想要实现的目标 . 我特别的问题是我想检查MVC视图,如果当前用户在给定的角色组中 . 我还发现Roles.IsUserInRole不再工作了 .
如果您在视图中执行此操作,但使用ASP.NET标识2.0而不是以前的MVC版本提供的简单成员资格提供程序,则以下可能有助于作为单行解决方案:
然后,您可以将其与HTML结合使用,以选择性地显示菜单项(这是我一直在使用它),具体如下:
这允许我阻止访问用户不是“管理员”角色成员的用户管理超链接 .