我刚开始摆弄 OWIN/Katana 和 MVC.NET 5.0。默认的 Visual Studio 2013 ASP.NET Web 应用程序/MVC 模板有一个带有 LogOut() 操作的 AccountController:
public ActionResult LogOff() {
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
正如预期的那样,这工作得很好。但是,当我更改响应状态代码时,例如:
Response.SetStatus(HttpStatusCode.SeeOther);
... AuthenticationManager.SignOut() 方法不再导致用户注销。这是为什么?
我尝试了不同的方法来设置响应的 http 状态代码,以及更改诸如 Location 之类的 http 标头,并且始终得到相同的结果 - 如果我进入缓和状态,执行 LogOff() 操作时用户不会注销与回应。
我尝试不使用 RedirectToAction(它显式地实现了 302 重定向——那是另一回事),也没有返回 ActionResult,但这并没有什么不同——并不是我真的期望它这样做。
使用 Fiddler,我可以看出浏览器显示的响应看起来很好,没有任何意外。
我也尝试过查看工作中的 OWIN 中间件的源代码,但是我对架构仍然不熟悉,并且我没有找到可以掌握的答案。我需要你的帮助来解决这个问题,所以提前谢谢你!