|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Добрый день! Сейчас после авторизации данные пользователя и подключения к бд записываются в сессию. Но по истечению определенного времени сессия истекает и на данный момент, если пользователь хочет сделать какое-либо действие, в Page_PreInit проверяю HttpContext.Current.Session["ConnectionStrings"] и если она не определена , то делается редирект на страницу авторизации. Хотелось бы сделать лучше, а именно чтобы происходил не редирект, а показать окно авторизации, где бы пользователь внес свои данные и продолжил работу. Пробовал так, но это не работает, появляется окно "Status Code: 200 Status Text: NORESPONSE", а окно ReloginWindow не открывается Код: plaintext 1. 2. 3. 4. 5. 6.
Можно ли как то приостановить или корректно завершить запрос Page_PreInit или нужно раньше делать проверку? Посоветуйте, пожалуйста, как бы вы сделали это? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2017, 15:14 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkin, данные сессии нельзя восстанавливать, так как суть сессии в её ограниченном времени жизни, после этого сессия умирает, и как будто ничего не было, надо начинать сначала. нельзя продолжить работу, после истечения жизни сессии. просто прими как факт, так не делается. всё правильно делается, сессия истекла, пользователь попадает на страницу авторизации и начинает работу сначала с точки зрения сессионных данных. вообще, чтобы избежать подобных проблем, либо не использовать сессию вообще по возможности, либо не использовать для чувствительных для работы пользователя данных, храните их в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 07:47 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
hVostt, Не может быть чтобы не было вариантов. Это же неудобно. Я таких сайтов уже лет 5 не видел. Работает с Core вариант?: Код: c# 1.
Кроме того, по умолчанию таймаут сессии 20 мин. Но максимум параметра 1 год! Это значит юзверь должен тупо смотреть 20 мин на экран и ничего не делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 11:57 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Вот хороший вариант: Код: xml 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 12:08 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
skyANA, Ну, это лечение головной боли гильотиной ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 12:20 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123Не может быть чтобы не было вариантов. Это же неудобно. варианты прострелить себе ногу есть всегда и хорошо, если ногу ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 15:22 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123skyANA, Ну, это лечение головной боли гильотинойА ведь верно подмечено. Session - это головная боль. Зачем её лечить, если можно просто избавиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 15:42 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkinПосоветуйте, пожалуйста, как бы вы сделали это?Редирект на страницу логина с парамтрами куда возвращаться после входа. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 15:49 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
В случае FormsAuthentication параметр называется ReturnUrl. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 15:53 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
hVosttPetro123Не может быть чтобы не было вариантов. Это же неудобно. варианты прострелить себе ногу есть всегда и хорошо, если ногу Профи все фичи использует аккуратно и к месту)). Даже если нужно что то положить в сессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 17:43 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
skyANASession - это головная боль.-1 Все используют, а в шарпе головная боль. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 17:44 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Спасибо ребята что откликнулись. В итоге накостылял, получилось не идеально но терпимо на первое время. Здесь специфика в том что это веб-приложение для ведения учета и если в нем работать, то он может стоять открытым долгое время без каких либо действий и по возвращению хотелось бы не терять открытые окна и тому подобное из-за редиректа на страницу авторизации. Сессию можно назвать не восстанавливаю, а делаю новую и продолжаю на нем работать дальше. Веб-приложение на web forms с ext.net. Сделал доп. модальное окно для авторизации внутри приложения и если происходит запрос на сервер и обнаруживается что сессия истекла, то это окно показывается, а отправленный запрос просто возвращает null. Далее если вводится верный пароль, то создается новая сессия и работаем на ней. Сейчас не идеально то что по идее нужно было бы повторно запустить тот неудачный запрос автоматом и завершить действия, но пока это не стал делать, то есть человек должен повторно инициировать сове действие. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 21:03 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkinделаю новую и продолжаю на нем работать дальше. а это поднять повыше не пробовал? Куча отзывов что этот параметр не работает: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 21:53 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123, пробовал, сейчас стоит <sessionState timeout="10000" /> ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:02 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123Профи все фичи использует аккуратно и к месту)). Даже если нужно что то положить в сессию. профи не используют все фичи только потому что они есть ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:13 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
OFF hVosttпрофи не используют все фичи только потому что они есть тут важна линейка решений от простого к сложному. Допустим есть другой ТС и нужна сессия для хранения 2-х, 3-х атрибутов из полей при переходе по страничкам. Твои действия? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:41 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkinPetro123, пробовал, сейчас стоит <sessionState timeout="10000" /> OK. Странно что все говорят, что параметр нерабочий). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:43 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkinЗдесь специфика в том что это веб-приложение для ведения учета и если в нем работать, то он может стоять открытым долгое время без каких либо действий и по возвращению хотелось бы не терять открытые окна и тому подобное из-за редиректа на страницу авторизации.Замечу, что это прекрасно реализуется без использования Session. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:44 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123skyANASession - это головная боль.-1 Все используют, а в шарпе головная боль.Думаю редко какое высоконагруженное приложение на шарпе использует Session ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 22:48 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
skyANAвысоконагруженное приложение это очень расплывчатое понятие. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 23:15 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
ilshatkin, раз Вы используете Session, то Вам будет полезно знать, что по умолчанию запросы в рамках одной сессии обрабатываются последовательно. 15 лет назад это не было проблемой, но сейчас, когда с одной страницы зачастую посылается множество AJAX запросов, когда пользователи открывают сразу несколько вкладок в браузере для одного приложения, на ровном месте получаем узкое место и проблемы производительности на стороне клиента. А всё по тому, что по умолчанию Session в начале запроса блокируется до его окончания. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 23:20 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
Petro123skyANAвысоконагруженное приложение это очень расплывчатое понятие.Тебя не это должно интересовать, а связанные с использованием Session проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 23:27 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
skyANAilshatkin, раз Вы используете Session, то Вам будет полезно знать, что по умолчанию запросы в рамках одной сессии обрабатываются последовательно. 15 лет назад это не было проблемой, но сейчас, когда с одной страницы зачастую посылается множество AJAX запросов, когда пользователи открывают сразу несколько вкладок в браузере для одного приложения, на ровном месте получаем узкое место и проблемы производительности на стороне клиента. А всё по тому, что по умолчанию Session в начале запроса блокируется до его окончания. браузер имеет ограничение на количество соединений с сервером (для параллельности). Давай его как и сессию запретим или выкинем). Фигня это всё. Надо писать так, чтобы один запрос занимал время 15 миллисек. Мы же не одноклассники пишем. Пусть ТС сначала с формс на Core перейдёт). Удачи ему! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 23:51 |
|
Как восстановить сессию
|
|||
---|---|---|---|
#18+
skyANAа связанные с использованием Session проблемы профи тут любят так отвечать: "с сессией нет проблем". Вот с параметром сессии таймаутом надо разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 23:53 |
|
|
start [/forum/topic.php?fid=18&fpage=23&tid=1355341]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 412ms |
0 / 0 |