次のように、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")もユーザーをリダイレクトするためです。HttpGetLogin
RedirectToActionしかし、その呼び出しをSignOutアクションから除外すると、なんらかのActionResult型を返さなければなりません。何を返せばいいですか?