suhel_khan Ответов: 2

Управление сеансами в мировой.эйсакс (пользовательские сессии проверить)


Мне нужно управлять сеансом через файл global.asax, потому что я не хочу писать метод проверки сеанса для каждой страницы, я хочу, чтобы все запросы по умолчанию проверялись из global.asax. Мне нужно проверить свой пользовательский сеанс в session_start, чтобы увидеть действительного пользователя. Я использую outproc (state server)для хранения сеанса.

Я попробовал код, но после проверки сеанса он не проверяет сеанс для следующей загрузки, у меня есть следующий сценарий.

1) Откройте любой URL-адрес (если сеанс не удался, он должен перенаправиться на страницу входа в систему)
2) после посадки на страницу входа я меняю URL в адресной строке и за это время код не приходит в session_start, чтобы проверить действительный сеанс.

Что я уже пробовал:

protected void Session_Start(object sender, EventArgs e)
        {
            try
            {
                if (HttpContext.Current.Session["clientinfo]!=null))
                {

                }
                else
                {
                    //FormsAuthentication.SignOut();
                    //HttpContext.Current.Session.Abandon();
                    Response.Redirect("some page");
                }

            }
            catch
            {
            }
        }

2 Ответов

Рейтинг:
18

praveenlob7

Привет,

Почему бы вам не использовать для этого фильтры?

Проверьте приведенный ниже URL-адрес.
Проверьте тайм-аут сеанса с помощью ActionFilters в MVC[^]


Рейтинг:
1

Sachin Kakade

Создать общий метод для проверки сессии, получить вызов, где требуется

/// <summary>
        /// Method to check sesssion.
        /// </summary>
        /// <param name="sessionName"></param>
        /// <returns></returns>
        public static bool CheckSession(string sessionName)
        {
                      if(!string.IsNullOrEmpty((string)HttpContext.Current.Session[sessionName]))
            {
                return true;
            }
            else
            {
                return false;
            }
        }