简介:如何在Asp.net MVC2通过Ajax调用处理UnauthorizedRequest
我在我的框架归类AuthorizeAttribute在我做的自定义授权子。
我正在从正常的asp.net mvc视图渲染切换到通过jQuery进行Ajax渲染的过程。因此,应用程序中的每个链接都会执行ajax调用来获取数据。
为了迎合这一点,我已将大部分页面转换为部分视图,以便每个ajax请求只获取需要在页面上更新的部分。
在正常视图渲染时,当请求未经授权时,它将被重定向到web.config中描述的登录页面。转换为Ajax后,情况有点不同,因为我不想在ajax请求中登录页面的标记,但想要一个结构化的响应,以便我可以在ajax调用中相应地采取行动。
为了做到这一点,我相信我必须重写子类AuthorizeAttribute类中的HandleUnauthorizedRequest方法,并将filterContext.Result设置为json结果。但是在这样做的时候,我将如何区分未经授权的请求和成功的请求,因为从ajax调用的角度来看,这两个都是成功的响应;因此将在成功处理程序中处理。
什么是解决这个问题的正确方法?
好的,在会话过程中,一旦会话过期,会马上恢复正常,登录页面再次作为对ajax请求的响应发送,其状态为成功。因此,我将不得不做一些事情来检测会话已过期,有没有人有任何建议? – Nosh 2010-07-30 04:13:21