views:

14

answers:

1

Trying to find solution for redirection to the login page after Ajax-call if a user is not authenticated longer.

I used a method described here http://stackoverflow.com/questions/199099/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

alt text

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