Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 将用户从jquery ajax请求重定向到登录页面_Asp.net Mvc 3_Jquery - Fatal编程技术网

Asp.net mvc 3 将用户从jquery ajax请求重定向到登录页面

Asp.net mvc 3 将用户从jquery ajax请求重定向到登录页面,asp.net-mvc-3,jquery,Asp.net Mvc 3,Jquery,Iam使用自定义授权筛选器检查我的操作方法,以检查用户是否有权访问它。 若用户并没有访问权限,那个么用户将被重定向到未授权页面 iam在这里面临的问题是,iam使用jQueryAjax请求调用该操作方法。如果用户有访问权限,一切都会正常工作。但如果用户没有访问权限,则代码无法绑定视图(“未授权”),并在浏览器屏幕上显示现有视图 任何建议都会有帮助 谢谢。问题是ajax请求无法发送重定向响应。您可以返回一个状态代码,告诉调用javascript重定向,或者简单地将响应.ContentType更改为

Iam使用自定义授权筛选器检查我的操作方法,以检查用户是否有权访问它。 若用户并没有访问权限,那个么用户将被重定向到未授权页面

iam在这里面临的问题是,iam使用jQueryAjax请求调用该操作方法。如果用户有访问权限,一切都会正常工作。但如果用户没有访问权限,则代码无法绑定视图(“未授权”),并在浏览器屏幕上显示现有视图

任何建议都会有帮助


谢谢。

问题是ajax请求无法发送重定向响应。您可以返回一个状态代码,告诉调用javascript重定向,或者简单地将
响应.ContentType
更改为
application/javascript
,并使用
window.location=“newUri”
作为响应主体。

除非我遗漏了什么,shakti描述了一个授权过滤器,该过滤器通过Ajax调用进行验证。我从未使用过这种自定义筛选器,但我怀疑它们能够像任何其他授权筛选器一样重定向。@DaveA:不适用于ajax请求。是的,请求将从视图中启动。是的,我已更正。@jgauffin,我需要使用“application/json;charset=utf-8”作为内容类型,因为我需要将json数据发布到服务器。此数据在一个操作方法中捕获,该方法上方有自定义授权属性。此属性需要检查用户是否有权访问该方法,如果没有,则应将用户重定向到另一个操作方法,该方法将另一个视图名称绑定为“unhorize”到浏览器。如果我的请求通常是通过提交按钮完成的,那么所有这些都可以工作。但在当前情况下,我希望异步发布数据,因此iam使用ajax和json。但是ajax请求无法绑定另一个视图。您必须使用自定义的authorize属性,该属性将ajax请求识别为常规的
响应。重定向()
对它们不起作用。这个被拒绝权限的答案必须返回
应用程序/javascript
才能执行重定向