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 № 1Avez-vous ajouté la revendication de rôle lors de la création de votre identité?
userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));