Страница не перенаправляет на страницу входа после окончания сеанса с помощью AJAX - PullRequest
0 голосов
/ 26 июня 2018

В моем проекте MVC большинство обращений к серверу осуществляется с использованием Ajax. Это работает гладко, пока сессия не истекает. Я добавил пользовательский атрибут, чтобы перенаправить страницу на страницу входа после истечения сеанса. Но когда звонок поступает из AJAX, он не перенаправляется на страницу входа.

Я прошел через множество потоков по этому поводу, которые в основном предлагали использовать OnActionExecuted метод класса ActionFilterAttribute, но при этом я получаю только тип HttpActionExecutedContext вместо типа ActionExecutingContext.

Вот мой код:

public class SessionExpired : ActionFilterAttribute
        {
            public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
            {
                //My Code to handle the session event
                base.OnActionExecuted(actionExecutedContext);
            }
        }

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Создайте пользовательский фильтр действий, который обрабатывает истечение срока сеанса и, если сеанс имеет значение NULL, перенаправьте на действие входа в систему.

namespace Mayur.Web.Attributes
{
public class SessionTimeoutAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext ctx = HttpContext.Current;
        if (HttpContext.Current.Session["ID"] == null)
        {
            filterContext.Result = new RedirectResult("~/Home/Login");
            return;
        }
        base.OnActionExecuting(filterContext);
    }
}

}

0 голосов
/ 26 июня 2018

Функции Ajax используются для получения данных или прежде всего для публикации данных. Если вы пытаетесь перенаправить на любую страницу, используя механизм запроса ajax, значит, вы идете в неверном направлении.

...