开发者

Problem to catch REQUIRES_AUTH and xhr.status from HttpContext.Response

开发者 https://www.devze.com 2023-01-17 22:31 出处:网络
Trying to find solution for redirection to th开发者_运维百科e login page after Ajax-call if a user is not authenticated longer.

Trying to find solution for redirection to th开发者_运维百科e login page after Ajax-call if a user is not authenticated longer.

I used a method described here How to manage a redirect request after a jQuery Ajax call

private static void RedirectionToLogin(ActionExecutingContext filterContext)
{
    string redirectOnSuccess = filterContext.HttpContext.Request.Url.AbsolutePath;
    string redirectUrl = string.Format("?ReturnUrl={0}", redirectOnSuccess);
    string loginUrl = FormsAuthentication.LoginUrl + redirectUrl;

    filterContext.HttpContext.Response.AddHeader("REQUIRES_AUTH", "1");
    filterContext.HttpContext.Response.StatusCode = 401;
    filterContext.HttpContext.Response.Redirect(loginUrl, true);
}

JavaScript is

$(window).ajaxComplete(function (event, request, settings) {
    alert(request.getResponseHeader('REQUIRES_AUTH'));
    alert(request.status);
    if (request.getResponseHeader('REQUIRES_AUTH') === 1) {
        window.location = App.basePath + "Login/LogOn";
    {
});

If user was logged out request.getResponseHeader('REQUIRES_AUTH')) is always NULL

Problem to catch REQUIRES_AUTH and xhr.status from HttpContext.Response

Why request.getResponseHeader('REQUIRES_AUTH')) is NULL???


I think the reason you are getting a null value for "REQUIRES_AUTH" is that your log in page

    ~/Login/Logon 

does not require authentication. Which is correct, otherwise you would not be able to log in! Also your javascript has a curly bracket the wrong way around. (typo) should be:

$(window).ajaxComplete(function (event, request, settings) {

    alert(request.getResponseHeader('REQUIRES_AUTH'));

    alert(request.status);

    if (request.getResponseHeader('REQUIRES_AUTH') === 1) {
        window.location = App.basePath + "Login/LogOn";
    }
});

I am also looking for a nice solution for this problem, but am still a bit stuck. Have you managed to solve this problem? if so, how did you manage it?

0

精彩评论

暂无评论...
验证码 换一张
取 消