У кого-нибудь еще есть проблемы с потерей переменных сеанса в Firefox, но не в Chrome или IE? - PullRequest
1 голос
/ 06 мая 2019

У нас возникли некоторые проблемы с возвратом переменных, сохраненных в сеансе, что, в свою очередь, приводит к тому, что код авторизации нашего контроллера перенаправляет некоторых пользователей обратно на страницу входа.Кажется, что пользователи имеют эту проблему только с браузером Firefox, и приложение работает для них нормально при использовании Chrome или Edge.Это похоже на то, как если бы их сеанс отбрасывался во время навигации по сайту (в основном сразу после входа в систему, когда он перенаправлен на домашнюю страницу, однако иногда пользователь может получить доступ к нескольким ссылкам до того, как его выгнали). Проблема также возникает только послеработает на наших тестовых или производственных площадках, воспроизводя проблему локально хлопотно.Мне было интересно, сталкивался ли кто-то еще с этим типом проблемы раньше и смог ли он обойти или решить ее.Наше состояние сеанса установлено на InProc.

На основе других потоков, о которых я читал здесь, я до сих пор пробовал следующее: Гарантировал, что Session_Start находится в Global.asax, Попытался установить «фиктивную» переменную сеанса в Session_StartМетод "Session [" Init "] = 1", добавил это в наш файл web.config в разделе, а также некоторые другие найденные мной решения, которые, как оказалось, не решили нашу проблему.

Эточасть кода, о которой идет речь.

public class AuthorizeSessionAttribute : AuthorizeAttribute, IAuthorizationFilter
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            HttpSessionStateBase session = filterContext.HttpContext.Session;
            Controller controller = filterContext.Controller as Controller;

            if (controller != null && session != null && session["CurrentRole"] == null)
            {
                controller.HttpContext.Response.Redirect("~/Account/Login");
            }

            base.OnAuthorization(filterContext);
        }
    }

Я просто не вижу какой-либо очевидной причины того, почему это происходит только в Firefox, но работает правильно в Chrome или IE.Любой вклад в это будет приветствоваться.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...