c# - MVC4 表单例份验证 + AJAX 操作

标签 c# asp.net-mvc-4 forms-authentication

在我的 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/

相关文章:

asp.net-mvc-4 - Kendo UI 网格批量编辑需要显示 bool 值 true(复选框需要选中) false(复选框需要取消选中)

asp.net - 使 ASP.NET FormsAuthentication 服务器端无效

c# - 为什么我的 NHibernate 更新不工作?

c# - 跨多个程序集应用全局样式

azure - Windows Azure 角色间通信

javascript - 使用 Javascript 在 MVC4 Razor 中构建 HTML 表格行

java - mysql如何配置tomcat 6.0

asp.net - 仅允许特定 Web 用户对文件夹进行写访问

c# - 如何找到可用于 VS2008 的异常名称(在智能感知中)

c# - 发出委托(delegate)函数调用