Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 如何在Ajax和局部视图中最好地使用[Authorize]属性?_Asp.net Mvc_Ajax_Asp.net Ajax - Fatal编程技术网

Asp.net mvc 如何在Ajax和局部视图中最好地使用[Authorize]属性?

Asp.net mvc 如何在Ajax和局部视图中最好地使用[Authorize]属性?,asp.net-mvc,ajax,asp.net-ajax,Asp.net Mvc,Ajax,Asp.net Ajax,我正要对通过Ajax返回部分视图的操作使用[Authorize];但是我没有得到我想要的行为(尽管这是我期望的行为) 这似乎是一个远大的希望;但是,有没有办法扩展这个属性以“中断”AJAX调用并将整个页面重定向到登录屏幕?(而不是将登录屏幕返回到我设置的UpdateTargetId的任何位置?) 我想我已经掌握了如何在每个特定的Ajax调用中执行此操作的方法,但是如果我能够以某种方式集中此操作,它将节省大量代码…AuthorizeAttribute不会为您执行此操作,但您可以集中您的代码。创建一

我正要对通过Ajax返回部分视图的操作使用
[Authorize]
;但是我没有得到我想要的行为(尽管这是我期望的行为)

这似乎是一个远大的希望;但是,有没有办法扩展这个属性以“中断”AJAX调用并将整个页面重定向到登录屏幕?(而不是将登录屏幕返回到我设置的UpdateTargetId的任何位置?)


我想我已经掌握了如何在每个特定的Ajax调用中执行此操作的方法,但是如果我能够以某种方式集中此操作,它将节省大量代码…

AuthorizeAttribute不会为您执行此操作,但您可以集中您的代码。创建一个新属性,该属性在当前没有用户登录时返回http状态代码401(未授权)。在site.master引用的JavaScript文件中,处理jQuery$.ajaxError事件。在响应状态代码中查找http 401,并通过JavaScript重定向到您的登录页面。现在,如果当前用户未经授权,那么通过jQuery进行的任何Ajax调用都将在这里结束