如何检查用户是否属于具有 MVC4 简单成员资格的几个不同角色中的任何一个? [英] How can I check if a user is in any one of a few different roles with MVC4 Simple membership?

查看:9
本文介绍了如何检查用户是否属于具有 MVC4 简单成员资格的几个不同角色中的任何一个?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道检查用户是否在角色中的一个好方法是:

I understand that a good way to check if an user is in a role is:

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

}

但是,如何检查我的用户是否属于作者"、管理员"或超级"角色之一?有没有办法不为每个角色编码User.IsInRole"?

However How can I check if my user is in one of the "Author", "Admin" or "Super" roles? Is there a way to do this without coding "User.IsInRole" for each of the roles?

推荐答案

无需对每个角色进行编码,将其作为 LINQ 扩展方法,如下所示:

private static bool IsInAnyRole(this IPrincipal user, List<string> roles)
{
    var userRoles = Roles.GetRolesForUser(user.Identity.Name);

    return userRoles.Any(u => roles.Contains(u));
}

对于用法,请执行以下操作:

For usage, do:

var roles = new List<string> { "Admin", "Author", "Super" };

if (user.IsInAnyRole(roles))
{
    //do something
}

或者没有扩展方法:

var roles = new List<string> { "Admin", "Author", "Super" };
var userRoles = Roles.GetRolesForUser(User.Identity.Name);

if (userRoles.Any(u => roles.Contains(u))
{
    //do something
}

这篇关于如何检查用户是否属于具有 MVC4 简单成员资格的几个不同角色中的任何一个?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆