我熟悉:
WebSecurity.IsCurrentUserInRole("Admin")
但这似乎不再起作用了。当我使用SimpleMembership时,如果用户在某个角色中,我是否可以检查我的控制器?
答案 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>