繁体   English   中英

在MVC表单身份验证中处理未经身份验证的Ajax请求

[英]Handle unauthenticated ajax requests in MVC Forms Authentication

我有一个带有表单身份验证的MVC 4.0网站,并且正在尝试处理身份验证超时。 具体来说,我需要在超时后处理ajax请求的方式与常规请求不同,因为如果留给自己的设备,MVC的表单身份验证系统会将302 FoundRedirect )发送到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM