我在 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
类型。我应该返回什么?