Je viens de créer un nouveau projet d'API Web (à l'aide de MVC) dans Visual Studio 2015 et, à des fins de test, j'ai exécuté ce projet mais me suis retrouvé avec une erreur.
Après avoir exécuté le projet, la page d'accueil s'affiche correctement, mais lorsque je navigue dans/api/values ou/api/values / 5, le message XML ci-dessous s'affiche.
<Error>
<Message>Authorization has been denied for this request.</Message>
</Error>
Puis-je avoir une aide s'il vous plait? Je suis nouvelle dans l'API Web ..__ Veuillez noter que je ne souhaite pas supprimer l'attribut Autoriser. Je voudrais accéder à la ressource après autorisation seulement. Je cherche donc ce qui ne va pas.
Dans ValuesController, il existe un attribut Authorize
si vous le supprimez, il fonctionnera alors comme page d'accueil.
L'attribut Authorize
empêche simplement un utilisateur anonyme d'accéder à ValuesController
.
pour utiliser cet attribut, vous devez d'abord enregistrer un utilisateur, puis vous connecter pour obtenir le jeton de l'utilisateur. Vous pouvez ensuite utiliser le jeton pour vous autoriser et obtenir l'accès.
Dans cette page Individual-accounts-in-web-api est expliqué tout ce dont vous avez besoin
Cela se produit parce que vous avez un Authorize attribut sur votre ValuesController
[Authorize]
public class ValuesController : ApiController
Supprimez simplement [Authorize]
et réessayez.
MODIFIER
Selon vos modifications: vous devez créer un nouvel utilisateur et vous connecter ou utiliser [AllowAnonymous]
comme mentionné par @Marcus H.
J'ai la réponse ici.
https://stackoverflow.com/a/29405794/8107314
Et il était très utile de corriger mon erreur mon erreur
Je viens de rencontrer le même problème et trouver la solution:
Vous devez enregistrer les éléments OAuth Token Generator et OAuth Token Consumer avant que WebAPI ne soit enregistré.
Cela a du sens si vous envisagez cela comme un pipeline, où Authentification/Autorisation doit précéder toute demande traitée 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 en tête de 43% du total Ingénieur logiciel principal
Développeur de logiciels intéressé par tout ce qui est .NET, en particulier WPF SOreadytohelp