如何检查用户是否在ASP MVC4 Simple Membership中扮演角色?

时间:2013-01-23 08:48:33

标签: asp.net-mvc-4

我熟悉:

WebSecurity.IsCurrentUserInRole("Admin")

但这似乎不再起作用了。当我使用SimpleMembership时,如果用户在某个角色中,我是否可以检查我的控制器?

2 个答案:

答案 0 :(得分:8)

您可以使用

if (User.IsInRole("Admin"))
{

}

和webConfig

<system.web>
    <roleManager enabled="true" />
    ....

评论后

你可以使用这样的东西:

foreach (string rolesForUser in Roles.GetRolesForUser(User.Identity.Name))
{
    if (User.IsInRole(rolesForUser))
    {

    }
}

我认为有一种优雅的方式可以做到这一点......

答案 1 :(得分:2)

您还需要设置RoleProvider

由于您使用的是SimpleMembership,因此您可能也应该使用SimpleRoleProvider。 您可以通过调用Roles.CreateRole或使用RoleManager Web界面以编程方式创建角色。

<roleManager enabled="true" defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, 
                             WebMatrix.WebData"/>
  </providers>      
</roleManager>
相关问题