如何检查,如果用户是在与MVC4简单的会员了一些不同的角色,任何一个? [英] How can I check if a user is in any one of a few different roles with MVC4 Simple membership?
本文介绍了如何检查,如果用户是在与MVC4简单的会员了一些不同的角色,任何一个?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
据我所知,一个很好的方法来检查如果用户是在一个作用是:
I understand that a good way to check if an user is in a role is:
if (User.IsInRole("Admin"))
{
}
不过,我如何检查我的用户是的作者之一,管理员或超级的角色?有没有办法做到这一点的无需编码User.IsInRole为每个角色?
推荐答案
编辑:没有编码的每个角色,做一个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));
}
有关使用情况,如下:
var roles = new List<string> { "Admin", "Author", "Super" };
if (user.IsInAnyRole(roles))
{
//do something
}
或不带扩展方法:
Or without the extension method:
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屋!
查看全文