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