asp.net-mvc - 我怎样才能最好地将 [Authorize] 属性用于 Ajax 和局部 View ?

标签 asp.net-mvc ajax asp.net-ajax

我正准备用[Authorize]在通过 Ajax 返回部分 View 的操作上;但我没有得到我想要的行为(尽管这是我期望的行为)。

这似乎是一个远景。但是,有什么方法可以扩展此属性以“中断”AJAX 调用并将整个页面重定向到登录屏幕? (与将登录屏幕返回到我设置的 UpdateTargetId 的任何位置相反?)

我想我知道如何在每个特定的 Ajax 调用上执行此操作,但是如果我能以某种方式集中它,它将节省大量代码......

最佳答案

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

关于asp.net-mvc - 我怎样才能最好地将 [Authorize] 属性用于 Ajax 和局部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/743252/

相关文章:

Python Web Framework 最像 ASP.NET MVC 3

C# MVC 从 Excel/dataadapter.fil(ds) 导入

c# - 使用 Ajax 以 guid 作为键的 .NET MVC 字典绑定(bind)问题

javascript - 如何使用getJson将变量发送到php文件

javascript - 缓存 HTML 字符串或 DOM 元素?

ASP.NET MVC AJAX Sys 未定义错误

asp.net-mvc - 除了将 MetadataTypeAttribute 直接放在类上之外,是否有其他方法可以指导 ASP.NET MVC 有关某些类元数据的信息?

javascript - jQuery UI 对话框在 Enter KeyPress 上更改 URL

c# - asp.net 从 iframe 刷新基页

c# - 按钮单击事件后调用 jquery 自动完成