powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как восстановить сессию
25 сообщений из 288, страница 1 из 12
Как восстановить сессию
    #39577437
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Сейчас после авторизации данные пользователя и подключения к бд записываются в сессию. Но по истечению определенного времени сессия истекает и на данный момент, если пользователь хочет сделать какое-либо действие, в Page_PreInit проверяю HttpContext.Current.Session["ConnectionStrings"] и если она не определена , то делается редирект на страницу авторизации.

Хотелось бы сделать лучше, а именно чтобы происходил не редирект, а показать окно авторизации, где бы пользователь внес свои данные и продолжил работу.

Пробовал так, но это не работает, появляется окно "Status Code: 200 Status Text: NORESPONSE", а окно ReloginWindow не открывается
Код: plaintext
1.
2.
3.
4.
5.
6.
 if (HttpContext.Current.Session["ConnectionStrings"] == null)
        { 
            this.ReloginWindow.Show();
            this.ReloginWindow.Call("body.highlight");
            this.Response.End();
        }



Можно ли как то приостановить или корректно завершить запрос Page_PreInit или нужно раньше делать проверку?
Посоветуйте, пожалуйста, как бы вы сделали это?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577672
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkin,

данные сессии нельзя восстанавливать, так как суть сессии в её ограниченном времени жизни, после этого сессия умирает, и как будто ничего не было, надо начинать сначала. нельзя продолжить работу, после истечения жизни сессии. просто прими как факт, так не делается.

всё правильно делается, сессия истекла, пользователь попадает на страницу авторизации и начинает работу сначала с точки зрения сессионных данных.

вообще, чтобы избежать подобных проблем, либо не использовать сессию вообще по возможности, либо не использовать для чувствительных для работы пользователя данных, храните их в БД
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577790
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Не может быть чтобы не было вариантов. Это же неудобно.
Я таких сайтов уже лет 5 не видел.
Работает с Core вариант?:
Код: c#
1.
options.IdleTimeout = TimeSpan.FromSeconds(10);


Кроме того, по умолчанию таймаут сессии 20 мин. Но максимум параметра 1 год!
Это значит юзверь должен тупо смотреть 20 мин на экран и ничего не делать.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577794
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот хороший вариант:

Код: xml
1.
2.
3.
4.
5.
  <system.web>
    <sessionState mode="Off" />
    <httpModules>
      <remove name="Session" />
    </httpModules>
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577802
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Ну, это лечение головной боли гильотиной
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577955
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Не может быть чтобы не было вариантов. Это же неудобно.

варианты прострелить себе ногу есть всегда
и хорошо, если ногу
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577962
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA,
Ну, это лечение головной боли гильотинойА ведь верно подмечено.

Session - это головная боль. Зачем её лечить, если можно просто избавиться?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577967
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkinПосоветуйте, пожалуйста, как бы вы сделали это?Редирект на страницу логина с парамтрами куда возвращаться после входа.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39577972
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае FormsAuthentication параметр называется ReturnUrl.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578032
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123Не может быть чтобы не было вариантов. Это же неудобно.

варианты прострелить себе ногу есть всегда
и хорошо, если ногу
Профи все фичи использует аккуратно и к месту)). Даже если нужно что то положить в сессию.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578034
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASession - это головная боль.-1
Все используют, а в шарпе головная боль.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578076
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ребята что откликнулись. В итоге накостылял, получилось не идеально но терпимо на первое время.

Здесь специфика в том что это веб-приложение для ведения учета и если в нем работать, то он может стоять открытым долгое время без каких либо действий и по возвращению хотелось бы не терять открытые окна и тому подобное из-за редиректа на страницу авторизации.

Сессию можно назвать не восстанавливаю, а делаю новую и продолжаю на нем работать дальше.

Веб-приложение на web forms с ext.net.

Сделал доп. модальное окно для авторизации внутри приложения и если происходит запрос на сервер и обнаруживается что сессия истекла, то это окно показывается, а отправленный запрос просто возвращает null. Далее если вводится верный пароль, то создается новая сессия и работаем на ней. Сейчас не идеально то что по идее нужно было бы повторно запустить тот неудачный запрос автоматом и завершить действия, но пока это не стал делать, то есть человек должен повторно инициировать сове действие.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578086
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkinделаю новую и продолжаю на нем работать дальше.
а это поднять повыше не пробовал?
Куча отзывов что этот параметр не работает:
Код: c#
1.
<sessionState timeout="8-ми часовой рабочий день" ... />
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578087
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

пробовал, сейчас стоит <sessionState timeout="10000" />
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578093
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Профи все фичи использует аккуратно и к месту)). Даже если нужно что то положить в сессию.

профи не используют все фичи только потому что они есть
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578101
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
hVosttпрофи не используют все фичи только потому что они есть
тут важна линейка решений от простого к сложному.
Допустим есть другой ТС и нужна сессия для хранения 2-х, 3-х атрибутов из полей при переходе по страничкам.
Твои действия?
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578102
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkinPetro123,
пробовал, сейчас стоит <sessionState timeout="10000" />
OK. Странно что все говорят, что параметр нерабочий).
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578103
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkinЗдесь специфика в том что это веб-приложение для ведения учета и если в нем работать, то он может стоять открытым долгое время без каких либо действий и по возвращению хотелось бы не терять открытые окна и тому подобное из-за редиректа на страницу авторизации.Замечу, что это прекрасно реализуется без использования Session.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578106
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANASession - это головная боль.-1
Все используют, а в шарпе головная боль.Думаю редко какое высоконагруженное приложение на шарпе использует Session
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578110
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвысоконагруженное приложение
это очень расплывчатое понятие.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578113
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkin, раз Вы используете Session, то Вам будет полезно знать,
что по умолчанию запросы в рамках одной сессии обрабатываются последовательно.

15 лет назад это не было проблемой, но сейчас,
когда с одной страницы зачастую посылается множество AJAX запросов,
когда пользователи открывают сразу несколько вкладок в браузере для одного приложения,
на ровном месте получаем узкое место и проблемы производительности на стороне клиента.

А всё по тому, что по умолчанию Session в начале запроса блокируется до его окончания.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578115
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAвысоконагруженное приложение
это очень расплывчатое понятие.Тебя не это должно интересовать, а связанные с использованием Session проблемы
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578119
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAilshatkin, раз Вы используете Session, то Вам будет полезно знать,
что по умолчанию запросы в рамках одной сессии обрабатываются последовательно.

15 лет назад это не было проблемой, но сейчас,
когда с одной страницы зачастую посылается множество AJAX запросов,
когда пользователи открывают сразу несколько вкладок в браузере для одного приложения,
на ровном месте получаем узкое место и проблемы производительности на стороне клиента.

А всё по тому, что по умолчанию Session в начале запроса блокируется до его окончания.
браузер имеет ограничение на количество соединений с сервером (для параллельности).
Давай его как и сессию запретим или выкинем).
Фигня это всё.
Надо писать так, чтобы один запрос занимал время 15 миллисек.
Мы же не одноклассники пишем.
Пусть ТС сначала с формс на Core перейдёт).
Удачи ему!
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAа связанные с использованием Session проблемы
профи тут любят так отвечать: "с сессией нет проблем".
Вот с параметром сессии таймаутом надо разобраться.
...
Рейтинг: 0 / 0
Как восстановить сессию
    #39578122
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

молодец, так держать! Фигня всё это, не зачем разбираться как оно работает и какие могут быть проблемы
...
Рейтинг: 0 / 0
25 сообщений из 288, страница 1 из 12
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как восстановить сессию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]