我需要为asp .net web api实现基于角色的授权 从本机客户端应用程序访问令牌将在标头中发送, 所以当我将[Authorize]属性赋予我的web api时,它工作正常,但是当我给[Authorize(Role =" Admin")]时,它会给出未经授权的错误, 然后每当检查声明中的角色时,它总是为空。
我的startup.cs是
public void Configuration(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
});
}
我已经为方法
应用了authorize属性 [Authorize]
[HttpGet]
public async Task<UserDetails> TestAuthorization()
{
string upn = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Name).Value;
string tenantID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;
var role = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Role);
return null;
}
此处角色值始终为空
请帮我解决这个问题