使用广告访问令牌在asp.net web api中基于角色的授权

时间:2017-04-06 10:34:35

标签: asp.net-web-api role-base-authorization

我需要为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;
        }

此处角色值始终为空

请帮我解决这个问题

0 个答案:

没有答案