ASP.NET MVC HttpPostとSignOn()の混乱

.net asp.net-mvc authentication membership membership-provider
ASP.NET MVC HttpPostとSignOn()の混乱
  • [HttpPost] *属性、またはそれに関するPOSTメソッドを理解しているように、状態が変更されたときに使用されます。 ただし、次のようなloginUrlを使用してフォーム認証を設定した場合:

これにより、[Authorize]属性が検出されたときに強制的にリダイレクトされます。 例:

[Authorize]
public ActionResult AccessPrivateData()
{
    // Should redirect to /Account/LogIn if AuthCookie not set
    // ...
}

ここまでは順調ですね。 私の問題は、LogInアクションに[HttpPost]を使用できないことです(POSTにリダイレクトできないため)。

[HttpPost]
public ActionResult LogIn(string username, string password)
{
    // Won't find the URL (/Account/LogIn) if redirected to here...
    // ...
}

しかし、LogInアクションは実際に状態を変更せず、POSTを保証しますか? 誰かがいくつかの説明を提供してください、可能であれば、あなたはこれに対処する方法。

  0  0


ベストアンサー

2つのLogInアクションを使用できます。 リダイレクトはGETを使用し、ログインフォームを単にレンダリングするアクションに送信されます。

フォームが投稿されると、 `[HttpPost]`で装飾されたメソッドが使用されます

[HttpGet]
public ActionResult Login()
{
  // Render view
}

[HttpPost]
public ActionResult LogIn(string username, string password)
{
  // Process form post
}

2


タイトルとURLをコピーしました