AspNet.Idendity:确定用户是否在指定的角色中

时间:2017-07-01 00:30:42

标签: asp.net asp.net-mvc razor asp.net-identity role-manager

我正在使用MVC5编写WebApp,我将检查用户是否在指定的角色中。

因此我尝试使用User.IsInRole("Role")但它会抛出异常。 我尝试导入AspNet.Identity并使用用户管理器,但找不到方法IsInRoleAsync(userId, role)

@using Microsoft.AspNet;
@if(UserManager.IsInRoleAsync(user.Id, "Role")){
    // some code
}

请注意我在cshtml文件和razor语法中使用它。我希望你能帮助我。

提前谢谢

2 个答案:

答案 0 :(得分:1)

代码SCNPlane不仅适用于Razor视图(cshtml)。您必须实例化一个ApplicationUserManager实例,通常称为" UserManager"以及拥有有效的ApplicationUser(" user")对象。

最好在控制器中完成这项工作,并使用View Model或其他方法(如ViewBag或ViewData)将其传递给视图。

答案 1 :(得分:1)

您可以使用以下代码轻松查看:

例如:view1.cshtml

@if (Request.IsAuthenticated && User.IsInRole("Administrators"))
{
     //Any code

}