jquery - 自定义授权属性不适用于过期的 ajax 请求

标签 jquery asp.net-mvc ajax forms-authentication

我的 Controller 上有一个自定义授权属性,并且不会在过期的 ajax 请求上调用它。 我正在使用表单例份验证,并通过 $.ajax (jQuery) 调用 Controller 方法。 ajax 请求返回我的登录页面,但我似乎无法拦截此页面。

谢谢。

更新: 我明白了原因:我在 web.config 中评论了授权部分,如下所示:

  <authentication mode="Forms">
      <forms loginUrl="/Login" timeout="1" slidingExpiration="false"/>
    </authentication>
    <!--<authorization>
      <deny users="?"/>
    </authorization>-->

现在,即使在过期后,我的授权过滤器也会被调用。事实证明,Web.config 授权规则优先于授权过滤器。

最佳答案

未经授权请勿返回 401。 ASP.NET 拦截该请求并重定向到 web.config 中定义的登录页面。对于 AJAX,请返回其他内容,例如 403。

关于jquery - 自定义授权属性不适用于过期的 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644138/

相关文章:

javascript - 添加两个 MySql 变量在一起,一个日期和一个数字与 php

选中 Jquery 复选框在单击按钮时获取 attr id

javascript - Signalr Uncaught TypeError : currentHub. server.OnConnected 不是一个函数(…)

asp.net-mvc - 我在哪里修改 'signin-google' 的 owin security for google redirect url?

jQuery 使用 ajax 验证页面上的多个表单

javascript - 在元素附近激活悬停的方法

c# - .NET MVC 身份验证 - 表单 + Windows 身份验证

c# - foreach 循环内的 LINQ 表达式

php - 这段 Ajax/Javascript 代码有什么问题?

jquery - Controller 可以根据结果返回 JSON 或 HTML