/ / L'authentification de jeton du porteur API Web L'autorisation ne fonctionne pas - asp.net-mvc, asp.net-web-api, asp.net-mvc-5, asp.net-identity, asp.net-identity-2

L'authentification de jeton du porteur API Web L'autorisation ne fonctionne pas - asp.net-mvc, asp.net-web-api, asp.net-mvc-5, asp.net-identity, asp.net-identity-2

Je développe actuellement une application API Web ASP.NET avec l’authentification Identity 2.0 Bearer. J'ai configuré l'authentification du porteur et mis en œuvre la méthode SignIn afin que, lorsque je passe en-tête:

Authorization: Bearer uGjAWZA1nPc1AqPuKpAzPhb989SYbtGd...

Cela fonctionne normalement. je peux appeler User.Identity.GetUserId() ou User.Identity.GetUserName(). Je peux même vérifier si l'utilisateur joue un rôle ou non, et cela fonctionne également bien.

Ce qui ne marche pas, c’est [Authorize] attribut. Quand je spécifie des rôles, comme ça [Authorize(Roles = "Admin")] il retourne:

{
Message: "Authorization has been denied for this request."
}

Des pensées?

Réponses:

2 pour la réponse № 1

Avez-vous ajouté la revendication de rôle lors de la création de votre identité?

userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));