gpt4 book ai didi

asp.net - 如何将 Controller 上未经授权的 Ajax 请求重定向到登录页面? 。

转载 作者:行者123 更新时间:2023-12-02 15:58:33 26 4
gpt4 key购买 nike

[Authorize]
public class MyController : BaseController
{
[PermissionAuthorize]
public ActionResult GridData()
{
return Json(data, JsonRequestBehavior.AllowGet);
}
}

我创建了 PermissionAuthoize 属性来检查用户对特定操作的权限。我有一个问题,当用户 session 或票证到期后,如果用户向 Controller 发送 ajax 请求,则授权属性会拒绝该请求并以 html 登录表单形式返回给用户。该区域用户认为应用程序未执行。它显示出对用户的不良影响。

所以,如果用户在票证过期时发送 ajax 请求,我想将用户重定向到登录页面。

我可以为 Controller 创建另一个授权属性吗?

最佳答案

您需要做的第一件事是配置表单例份验证模块,以在抛出 401 时停止重定向到登录页面。 Phil Haack 写了 nice article关于如何实现这一目标。

完成此操作后,您将能够捕获客户端上的 401 HTTP 状态代码。所以你可以写一个global ajax handler当从服务器发送 401 状态代码时,将重定向到登录页面(当表单例份验证票证过期或用户根本没有经过身份验证时会发生这种情况):

$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
// unauthorized
window.location.href = '/logon';
}
});

关于asp.net - 如何将 Controller 上未经授权的 Ajax 请求重定向到登录页面? 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com