ASP.NET Web APIを作成し、Authorize属性をAPIコントローラーに適用しました。現在、Postmanを使用してテストしたいのですが、認証エラーが発生しています。
コントローラコードは次のとおりです。
[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();
}
私のリクエストは次のようになります http://prntscr.com/c8wz0b
私はこの高度なPostman RESTクライアントを使用しています http://prntscr.com/c8xafd
Postmanで承認を渡すにはどうすればよいですか?
EDIT 23/08/2016私はあなたがIDを使ってCookie認証をしていると思います
// 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))
}
});
これは、Visual StudioのIDを使用した既定の構成です。なぜそれがセキュリティにとって良いオプションではないのか、私は議論できますが、それはポイントではありません。
あなたはそれを「郵便屋さん」で聖霊降臨することができますが、これは私がそれをする方法であるのでトリッキーです:
これで郵便配達員は認証Cookieを取得し、[authorize]タグでWeb APIをリクエストできます
[〜#〜]編集[〜#〜]
ツールの場合、認証ヘッダーを追加する必要があります。
前の回答が削除されました
Postman Windows App 4.6.0の場合:
Mathieuによって投稿された回答に加えて、私はpostman( https://www.getpostman.com/docs/interceptor_cookies 、 https://www.getpostman .com/docs/capture )を使用してCookieをキャプチャします。その後それは働いた。