Asp.net mvc 登录限制到期时如何重定向?
在我的页面上,我使用了大量jqueryajax来执行一些用户操作(在系统中发送消息、向文章添加注释等)。此功能仅允许已注册或已登录的用户使用 例如:Asp.net mvc 登录限制到期时如何重定向?,asp.net-mvc,jquery,session-timeout,Asp.net Mvc,Jquery,Session Timeout,在我的页面上,我使用了大量jqueryajax来执行一些用户操作(在系统中发送消息、向文章添加注释等)。此功能仅允许已注册或已登录的用户使用 例如: [Authorize] [HttpPost] [AcceptVerbs(HttpVerbs.Post)] public JsonResult AddArticleComment(Int64 idArticle, String articleComment) { //process } $(document).ready(func
[Authorize]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult AddArticleComment(Int64 idArticle, String articleComment)
{
//process
}
$(document).ready(function () {
$("#btnAddArticleComment").click(function () {
showProgressBar();
jQuery.ajax("/Articles/AddArticleComment",
{ type: "POST",
data: { idArticle: $("#txtArticleId").val(), articleComment: $("#txtArticleComment").val() },
success: function (resultObj) {
hideProgressBar();
LoadArticles($("#txtArticleId").val());
},
error: function (xhr, status, index, anchor) {
hideProgressBar();
showInfoBox(false, "some error message");
},
async: false
});
return false;
});
};
在我的web.config中,我将登录超时设置为30分钟。当用户写入较长的注释且登录限制过期时,应用程序不会重定向到登录(例如:http://localhost/Account/Logon?ReturnUrl....
)
在这种情况下,如何重定向?查看此博客帖子: 其背后的想法是配置一个自定义模块,该模块将拦截401错误,而不是重定向到登录页面并以200状态代码结束,它将简单地将401状态代码传播到客户端。只有当它是AJAX请求时,它才会这样做。这将允许您简单地订阅一个全局AJAX错误处理程序,并在状态代码为401(这意味着用户未经过身份验证)时相应地执行操作