当通过AJAX调用从客户端调用WebAPI控制器时,此方法返回200代码,但用户在页面刷新时会重新进行身份验证。我做错了什么?
[HttpPost]
[Route("logout")]
public IHttpActionResult Logout() {
AuthenticationManager.SignOut();
}
这在标准MVC控制器中作为ActionResult和完整页面视图工作,但它不能通过AJAX工作。
答案 0 :(得分:1)
看起来您正在使用自定义AuthenticationManager
类,因为框架中内置的类似乎没有SignOut
方法。
http://msdn.microsoft.com/en-us/library/system.net.authenticationmanager(v=vs.110).aspx
如果是这种情况,那么您的AuthenticationManager
班级是否使用Session
存储用户信息?因为WebAPI控制器与MVC控制器不具有相同类型的会话访问权限。 WebAPI中的会话参考: