L'autorisation a été refusée pour cette demande - nouveau projet D'API Web
je viens de créer un nouveau projet D'API Web (en utilisant MVC) dans visual studio 2015 et pour le but de tester, j'ai lancé ce projet mais j'ai fini en dessous de l'erreur.
après avoir lancé le projet, il ramène la Page d'accueil correctement mais quand j'ai navigué dans /api/values ou /api/values/5, Il me donne le message xml ci-dessous.
<Error>
<Message>Authorization has been denied for this request.</Message>
</Error>
Quelqu'un peut-il aider? Je suis nouveau dans L'API Web. Veuillez noter que je ne veux pas supprimer l'Autoriser attribut. Je voudrais accéder à la ressource après autorisation seulement. Donc, je suis à la recherche de ce qui est mal.
3 réponses
dans le ValuesController il y a un attribut Authorize
si vous l'enlever, il fonctionnera comme page d'accueil.
Authorize
attribut juste empêcher un utilisateur anonyme d'accéder au ValuesController
.
pour travailler avec cet attribut, vous devez d'abord enregistrer un utilisateur, et puis connectez-vous à obtenir de l'utilisateur du jeton, vous pouvez utiliser le jeton d'autoriser votre auto et d'en obtenir l'accès .
dans cette page Personne-comptes-en-web-api tout est expliqué de quoi avez-vous besoin d'
Il arrive parce que vous avez un Autoriser l'attribut sur votre ValuesController
[Authorize]
public class ValuesController : ApiController
il suffit de supprimer [Authorize]
et essayer à nouveau
EDIT
selon votre édition: vous devez créer un nouvel utilisateur et vous connecter ou utiliser [AllowAnonymous]
as mentioned by @Marcus H. plus d'informations sur L'identité
j'ai la réponse ici.
https://stackoverflow.com/a/29405794/8107314
Et il a été très utile pour réparer mon erreur mon erreur
vous devez enregistrer le Générateur de Tokens OAuth et les objets de consommation de Tokens OAuth avant que WebAPI ne soit enregistré.
C'est un peu logique si vous pensez que c'est un pipeline, où L'Authentification / autorisation devrait venir avant le traitement des requêtes par les contrôleurs.
TL;DR: Changement
appBuilder.UseWebApi(config);
this.ConfigureOAuthTokenGenerator(appBuilder);
this.ConfigureOAuthConsumer(appBuilder);
this.ConfigureOAuthTokenGenerator(appBuilder);
this.ConfigureOAuthConsumer(appBuilder);
appBuilder.UseWebApi(config);
Par cguedel 43% du total Ingénieur Logiciel Principal
développeur de logiciels intéressé par toutes les choses. net, en particulier WPF SOreadytohelp