J'ai créé une API Web ASP.NET et appliqué l'attribut Authorize au contrôleur API. Maintenant, je veux le tester en utilisant Postman mais je reçois une erreur d'autorisation.
Le code du contrôleur est:
[Authorize]
[HttpPost]
public IHttpActionResult Attend([FromBody] int gigId)
{
var attendance = new Attdendance
{
GigId = gigId,
AttendeeId = User.Identity.GetUserId()
};
_context.Attdendances.Add(attendance);
_context.SaveChanges();
return Ok();
}
Ma demande ressemble à ceci http://prntscr.com/c8wz0b
J'utilise ce client Postman Rest avancé http://prntscr.com/c8xafd
Comment puis-je passer l'autorisation dans Postman?
EDIT 23/08/2016 Je suppose que vous êtes en authentification par cookie avec identité
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
C'est la configuration par défaut avec identité dans Visual Studio. Je peux expliquer pourquoi ce n'est pas une bonne option pour la sécurité, mais ce n'est pas le but.
Vous pouvez y aller avec "postman" mais c'est délicat Voici comment je le fais:
Maintenant, votre facteur reçoit le cookie d'authentification et vous pouvez demander une API Web avec la balise [authorize]
EDIT
Pour l'outil, vous devez ajouter un en-tête d'autorisation.
Réponse précédente supprimée
Pour Postman Windows App 4.6.0:
En plus de la réponse publiée par Mathieu, je devais installer l'extension interceptor pour postman ( https://www.getpostman.com/docs/interceptor_cookies , https://www.getpostman.com/docs/ capture ) pour capturer les cookies. Après cela a fonctionné.