Ролевая авторизация в веб-интерфейсе asp.net с использованием токена доступа к рекламе

Мне нужно реализовать авторизацию на основе ролей для asp .net web api из собственного клиентского приложения, токен доступа будет отправлен в заголовок, поэтому, когда я даю атрибут [Authorize] моему web api, он работает нормально, но когда я даю [Authorize(Role="Admin")] выдает несанкционированную ошибку, а затем при проверке роли в утверждениях всегда имеет значение null.

Мой 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;
        }

здесь значение роли всегда равно нулю

Пожалуйста помоги мне с этим

0 ответов

Другие вопросы по тегам