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