1

我需要从本机客户端应用程序为 asp .net web api 实现基于角色的授权,访问令牌将在标头中发送,所以当我给我的 web api 提供 [Authorize] 属性时它工作正常,但是当我给 [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]
        [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;
        }

这里角色值始终为空

请帮助我

4

0 回答 0