c# – asp.net identity获取登录用户的所有角色

我创建了一个基于角色的菜单,我跟着this教程。有些在那个页面下面你会看到这行代码:

String[] roles = Roles.GetRolesForUser();

它返回当前登录用户的所有角色。我想知道如何使用新的ASP.NET身份系统完成这一任务?

它仍然是新的,没有什么很多找到它。

Controller.User.Identity是一个ClaimsIdentity。您可以通过检查声明来获取角色列表…

var roles = ((ClaimsIdentity)User.Identity).Claims
                .Where(c => c.Type == ClaimTypes.Role)
                .Select(c => c.Value);

— update —

打破它更多一点…

using System.Security.Claims;

// ........

var userIdentity = (ClaimsIdentity)User.Identity;
var claims = userIdentity.Claims;
var roleClaimType = userIdentity.RoleClaimType;
var roles = claims.Where(c => c.Type == ClaimTypes.Role).ToList();

// or...
var roles = claims.Where(c => c.Type == roleClaimType).ToList();
http://stackoverflow.com/questions/21688928/asp-net-identity-get-all-roles-of-logged-in-user

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – asp.net identity获取登录用户的所有角色