我下载了WebApp-RoleClaims-DotNet示例应用程序,但由于某种原因无法正常工作。
“关于”页面包含以下相当简单的代码:
ClaimsIdentity claimsId = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
var appRoles = new List<String>();
foreach (Claim claim in ClaimsPrincipal.Current.FindAll(claimsId.RoleClaimType))
appRoles.Add(claim.Value);
ViewData["appRoles"] = appRoles;
return View();
现在,即使分配了适当的角色,表达式
ClaimsPrincipal.Current.FindAll(claimsId.RoleClaimType)
也会返回一个空列表。我猜这是因为,根据调试器,角色声明的类型为
roles
而不是适当的命名空间http://schemas.microsoft.com/ws/2008/06/identity/claims/role
。我想念什么?
最佳答案
你有没有做这个工作?
我发现这可行:
ClaimsIdentity id = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
var appRoles = new List<string>();
foreach (Claim claim in ClaimsPrincipal.Current.Claims)
{
appRoles.Add(claim.Value);
}
我希望它可以帮助遇到类似问题的人。
关于asp.net-mvc - 为什么角色声明的类型不正确?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29317910/