简化 User.IsInRole() 检查 asp.net mvc



在我们 asp.net.cshtml视图中的mvc项目中,您经常可以找到:

if (User.IsInRole("Admin") || User.IsInRole("Supervisor"))

我想像这样简化当前的语法:if (IsAdminOrSupervisor(User))

所以,我需要做一个html助手,或者一些后端助手。你能帮我怎么做吗?谢谢!

创建身份扩展以检查多个角色:

public static bool IsAdminOrSupervisor(this IPrincipal user, List<string> roles)
{
var userRoles = Roles.GetRolesForUser(user.Identity.Name);
return userRoles.Any(u => roles.Contains(u));
}

然后你可以像这样使用它:

var roles = new List<string> { "Admin", "Supervisor" };
if (User.IsAdminOrSupervisor(roles))
{
//Action
}

提示:您需要将保存此方法的类引用到Razor:

@Using NameSpace.ClassName

相关内容

  • 没有找到相关文章

最新更新