![](/img/trans.png)
[英]Dealing with MVC forms authentication expiration during ajax request
[英]Handle unauthenticated ajax requests in MVC Forms Authentication
我有一个带有表单身份验证的MVC 4.0网站,并且正在尝试处理身份验证超时。 具体来说,我需要在超时后处理ajax
请求的方式与常规请求不同,因为如果留给自己的设备,MVC的表单身份验证系统会将302 Found
( Redirect
)发送到Login页面作为对ajax
请求的响应...以接收200 Success
HttpStatusCode的ajax调用结束,这显然不是我想要发送的!
如何处理未经ajax
验证的ajax
请求?
扩展AuthorizeAttribute
当然不是答案,因为授权仅在身份验证之后出现。 在这种情况下,永远不会调用HandleUnauthorizedRequest
( 与问题中的不同答案相反 )
我可以在global.asax
拦截每个请求,并在那里进行检查...但这似乎是错误的处理方式。
我的web.config中的授权设置如下:
<authentication mode="Forms">
<forms loginUrl="Login"
protection="All"
timeout="60"
name=".ASPXAUTH"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="Main"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<sessionState mode="InProc" timeout="60"></sessionState>
因此,我最终要做的是允许web.config中的所有用户:
<authorization>
<allow users="*" />
</authorization>
然后检查我自己的代码中的用户是否已通过身份验证...
不过必须有更好的方法,不是吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.