我下载[Thinktecture.IdentityServer.v3][1]
和相应的客户项目。我想检查SampleAspNetWebApi
项目中的用户角色。
所以我改变样本方法如下
[Authorize(Roles="Admin")]
public class IdentityController : ApiController
{
public dynamic Get()
{
var principal = User as ClaimsPrincipal;
return from c in principal.Identities.First().Claims
select new
{
c.Type,
c.Value
};
}
}
我使用WPF hybrid client
来调用服务,并使用具有alice
角色的Admin
用户。
但它返回UnAuthorized错误。
用户已通过身份验证,但未设置角色。
如何检查SampleAspNetWebApi项目中的用户角色?
答案 0 :(得分:1)
Authorize属性查找Microsoft / .NET特定角色声明类型
http://schemas.microsoft.com/ws/2008/06/identity/claims/role
我们发出一个简单的“角色”声明。
您可以将传入的声明映射到ASP.NET所期望的 - 但这是关闭的 - 尝试从startup.cs中删除此行:`
JwtSecurityTokenHandler.InboundClaimTypeMap = ClaimMappings.None;