3

我熟悉:

WebSecurity.IsCurrentUserInRole("Admin")

但这似乎不再起作用。如果在我使用 SimpleMembership 时用户处于角色中,是否有另一种方法可以签入我的控制器?

4

2 回答 2

8

您可以使用

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

}

和 webConfig

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

评论后

你可以使用这样的东西:

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

    }
}

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

于 2013-01-23T08:51:01.890 回答
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>
于 2013-01-23T08:50:56.787 回答