我有许多Ajax应用程序(使用JQuery.ajax实现),返回JSON或HTML。其中一些应该只能被授权用户访问,并且我用[Authorize]
属性来装饰它们。对于非Ajax操作,如果用户未授权 - 系统将他重定向到登录页面(在web.config中配置)。未经授权的结果AJAX请求
但是这不适用于ajax动作,因为如果用户被授权 - 他加载页面,在该cookie过期并且他没有被授权之后,而不是html块,它应该替换旧的,他让我的登录页面进入块。
我知道我可以手动解决这个问题,例如删除[Authorize]属性,并返回特殊的json /空html,如果用户没有授权。但我不喜欢这个解决方案,因为我需要重写我所有的动作和ajax函数。我想要全局解决方案,允许我不要重写我的操作(可能是自定义授权属性,或者某些http未经授权的结果自定义处理)。
我想返回状态码,如果请求是ajax,并且重定向到登录页面,如果请求不是ajax。
“我要回状态码,如果请求是阿贾克斯,并重定向到登录页面,如果要求不是阿贾克斯。” - 似乎你已经列出了这个问题的解决方案,不是吗? – 2012-03-07 21:00:00
你现在想做什么?不管你采取什么路线,都会有一些重写。 – 2012-03-07 21:00:52
有时我是个白痴。尝试使用Request.isAjaxRequest(); – Ohgodwhy 2012-03-07 21:01:22