在我们 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