1

次のように、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型を返さなければなりません。何を返せばいいですか?

4

0 に答える 0