asp.net 身份获取登录用户的所有角色

2023-11-27

我创建了一个基于角色的菜单,并遵循该菜单this教程。在该页面的某些位置您会看到这行代码:

String[] roles = Roles.GetRolesForUser();

它返回当前登录用户的所有角色。我想知道如何使用新的 ASP.NET Identity 系统来实现这一点?

它仍然很新,没有太多可发现的。


Controller.User.Identity is a ClaimsIdentity。您可以通过检查声明来获取角色列表......

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

- - 更新 - -

再分解一点...

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net 身份获取登录用户的所有角色 的相关文章

随机推荐