次のように、LoginController 内に SignOut アクションがあります。
[Authorize]
public ActionResult SignOut()
{
var membershipProvider = new MembershipProviderFactory().Create();
membershipProvider.SignOut();
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
すべて正常に動作していますが、この方法によってクライアントとサーバーの間で 2 回の往復が発生することが懸念されます。
最初のラウンドトリップ:FormsAuthentication.SignOut()
呼び出しGetDefaultLoginPage()
(web.config ファイルの authentication 要素で宣言され、それに response.redirect を実行する呼び出し。
これ<forms>
は、すでに 1 回の 301/302 ラウンドトリップです。
2 回目の往復:
戻りRedirectToAction("Index")
により別の往復が発生します。
理想的には、呼び出しは冗長である必要があります。これは、デフォルトのログイン ページと同じであるデフォルトのログイン画面ビューを呼び出すコントローラーのデフォルトのアクションにRedirectToAction("Index")
もユーザーをリダイレクトするためです。HttpGet
Login
RedirectToAction
しかし、その呼び出しをSignOut
アクションから除外すると、なんらかのActionResult
型を返さなければなりません。何を返せばいいですか?