为什么角色声明的类型不正确?

时间:2015-03-28 13:49:42

标签: asp.net-mvc azure-active-directory

我下载了WebApp-RoleClaims-DotNet示例应用程序,但无论如何都无法使其工作。

about页面包含以下相当简单的代码:

        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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

你有没有得到这个工作?

我发现这很有效:

        ClaimsIdentity id = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
        var appRoles = new List<string>();

        foreach (Claim claim in ClaimsPrincipal.Current.Claims)
        {
            appRoles.Add(claim.Value);
        }

我希望它可以帮助有类似问题的人。