1

我在 LoginController 中有一个 SignOut 操作,如下所示:

[Authorize]
        public ActionResult SignOut()
        {
            var membershipProvider = new MembershipProviderFactory().Create();
            membershipProvider.SignOut();

            FormsAuthentication.SignOut();

            return RedirectToAction("Index");
        }

一切正常,但我担心这种方法会导致客户端和服务器之间的两次往返。

第一次往返:FormsAuthentication.SignOut()调用GetDefaultLoginPage()(在 web.config 文件的身份验证元素中声明并对其执行 response.redirect 的<forms>调用。这已经是一次 301/302 往返。

第二次往返: 返回RedirectToAction("Index")导致另一个。

理想情况下,RedirectToAction("Index")调用必须是多余的,因为它还将用户重定向到控制器HttpGet上的默认操作,该操作Login将调用默认登录屏幕视图,这与默认登录页面相同。

但是,如果我从操作中排除该RedirectToAction调用SignOut,我必须返回某种ActionResult类型。我应该返回什么?

4

0 回答 0