在我的 ASP.NET MVC4 应用程序中,我使用表单例份验证。应用程序中的一个 View 需要通过 jQuery post()
调用获取一些字符串数据。我写了一个返回字符串的 Action 。在表单例份验证票证过期之前,一切正常。过期后,对字符串操作的 AJAX 调用会产生以下结果:
- Action 中的代码没有被执行
- 该操作返回 HTTP 200 而不是 401
- 该操作以字符串形式返回登录 View 的 HTML
- 因为返回的是 200 状态而不是 401,所以控件以
jqXHR.done()
而不是jqXHR.fail()
结束
这是预期的行为吗?我可以做些什么让操作返回 401 吗?或者我应该做些什么来处理这个问题?
最佳答案
将代码放入 Application_EndRequest() 对我不起作用。以下是我的情况:
protected void Application_BeginRequest()
{
HttpRequestBase request = new HttpRequestWrapper(Context.Request);
if (request.IsAjaxRequest())
{
Context.Response.SuppressFormsAuthenticationRedirect = true;
}
}
关于c# - MVC4 表单例份验证 + AJAX 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777448/