Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Читал форум, подобных тем хватает, но грамотного решения я не нашел. Попробую описать детально. Задача: Сделать так чтоб сайт ASP.NET обрывал сессию как только человек закрыл браузер (так как я юзаю переменные сессия к примеру Код: c# 1. И если он закроет браузер и пойдет к другому компу то там его не пустит на сайт!). Надеюсь нормально описал? Реализовано сейчас: Я поставил тайм-аут сессии 1 мин. и положил таймер который раз в 30 сек. делает пост запрос (чтоб если человек отошел от компа и ничего не делает сессия не прервалась). Все работает, проблем нет. Но! Как по мне задача реализована не "по феншую", а топорным методом. (Можно ж не постить каждые 30 сек. ?) Может кто сталкивался? Какой самый просто способ рвать сессии после закрытия браузера? Или вообще что можно сделать в данной ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:01 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
alex.potekhin, Сессия и так рвётся после закрытия брвузера. Именно браузера , а не страницы в закладке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:07 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
оффalex.potekhinИ если он закроет браузер и пойдет к другому компу то там его не пустит на сайт! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:08 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSergealex.potekhin, Сессия и так рвётся после закрытия брвузера. Именно браузера , а не страницы в закладке. Сорри. Я имел ввиду закладку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:08 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Паганель оффalex.potekhinИ если он закроет браузер и пойдет к другому компу то там его не пустит на сайт! Ну идея как прикладной программы. Если ничего не делаешь, она работает. Если закрыл, то нет хвостов. По типу ISQ. Зайти можно только с 1 компа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:10 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
alex.potekhin Задача: Сделать так чтоб сайт ASP.NET обрывал сессию как только человек закрыл браузер Бред. Дальше даже читать не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:16 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSergeСессия и так рвётся после закрытия брвузера. Именно браузера , а не страницы в закладке. С чего это? http://msdn.microsoft.com/ru-ru/library/ms178581(v=vs.90).aspx Сеанс считается активным, пока запросы выполняются с одинаковым значением идентификатора SessionID. Если время между запросами определенного сеанса превышает указанное время ожидания в минутах, сеанс считается недействительным. Запросы, выполненные с просроченным идентификатором SessionID, приводят к запуску нового сеанса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:23 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
МСУShSergeСессия и так рвётся после закрытия брвузера. Именно браузера , а не страницы в закладке. С чего это? http://msdn.microsoft.com/ru-ru/library/ms178581(v=vs.90).aspx Сеанс считается активным, пока запросы выполняются с одинаковым значением идентификатора SessionID. Если время между запросами определенного сеанса превышает указанное время ожидания в минутах, сеанс считается недействительным. Запросы, выполненные с просроченным идентификатором SessionID, приводят к запуску нового сеанса. По определению. Читай мануалы, ёксель-моксель. Сессионная кука (айди сессии) убивается по закрытию браузера. Это - букварь для детского сада. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:27 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSergeПо определению. Читай мануалы, ёксель-моксель. Сессионная кука (айди сессии) убивается по закрытию браузера. Это - букварь для детского сада. Дорогой мой, убить кукис и прибить сессию на сервере - это разные вещи. Во-вторых, айди сесии может быть протаскиваться и в url. Каким образом сервер узнает, что клиент "закрыл браузер", чтобы прибить сессию? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:47 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSergeСессионная кука (айди сессии) убивается по закрытию браузера. Это - букварь для детского сада. И всё-таки, т.к. это букварь для детского сада: может поделиться пруфом на то, что браузер "убивает сессионную куку"? У меня несколько вопросов: как он определяет, что она именно "сессионная". И почему он решает, что ее нужно убить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:50 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Вопрос снят. http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie Web browsers normally delete session cookies when the user closes the ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:55 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Серж, это второй вопрос снят. МСУВопрос снят. А первый еще в силе: 14432842 С какого перепуга сессия рвется на сервере после закрытия браузера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:59 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
МСУ, На сервере она не рвётся , а становится недоступной для браузера, компри? Для пользователя - можешь называть "рвётся", ему один хрен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 12:14 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ПС. Ну, а если в браузере запрещены кукисы, то тогда сессионная кука передаётся в строке запроса. В принципе, да, если на сервере сессия ещё не сдохла, то можно запустить браузер с такой строкой запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 12:17 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSergeМСУ, На сервере она не рвётся , а становится недоступной для браузера, компри? Для пользователя - можешь называть "рвётся", ему один хрен. Ок, если ты в таком контексте имел ввиду, то ответ засчитывается. ShSergeПС. Ну, а если в браузере запрещены кукисы, то тогда сессионная кука передаётся в строке запроса. В принципе, да, если на сервере сессия ещё не сдохла, то можно запустить браузер с такой строкой запроса. О чем и речь. На сервере сессия живет, пока время не истечет либо принудительно ее пользователь не абандонит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 12:48 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
лонгпулинг, вебсокеты, и хак-методы, типа бесконечного джипега — всё для поддержания жизни сессии, эт можна :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2013, 08:48 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
hVosttлонгпулинг, вебсокеты, и хак-методы, типа бесконечного джипега — всё для поддержания жизни сессии, эт можна :) Это всё самое плохое, что можно себе вообразить для продления сессии. Обычно, используют простой поллинг, т.е., раз в 15 минут с клиента (браузер) запускается с помощью какого-нибудь аякса хендлер, который выводит два байта - "ОК", если всё хорошо. И сессия - таки жива. Но если закрыть браузер (о чём и речь), то это делу не поможет. На вопрос топикстартера, как при закрытии закладки грохнуть сессию (вернее, доступ к ней) - прописать сессионной куке яваскриптом, на унлоад боди, экспирес вчерашним днём (у сессионных кук экспирес отсутствует, поэтому они и грохаются при закрытии браузера). Но это - нехорошо, потому что, если ещё есть закладка, или страница в этом же самом браузере (нужная), то она тоже окажется без сессионной куки. Поэтому надо дело решать маленько думая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 09:55 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Сама задача от луквого. Зачем лезть в эти механизмы своими кривыми руками и писать левые хаки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 10:02 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSerge, авторЗадача: Сделать так чтоб сайт ASP.NET обрывал сессию как только человек закрыл браузер (так как я юзаю переменные сессия к примеру WebSockets — идеальное решение. но! 1. не каждый сервер это может себе позволить. 2. только современные браузеры. через SignalR можно поддерживать соединение, либа сама выберет подходящий по возможностям вариант. как только пользователь закрывает браузер (или последнюю открытую вкладку на сайт), мы узнаем об этом сразу же, моментально можно сказать, а не через какие-то там 15 минут. авторИ если он закроет браузер и пойдет к другому компу то там его не пустит на сайт!). чтобы решить эту задачу, объект Session нам вообще не понадобится. вообще плевать, есть там сессии или нет. другое дело, если в этих сессиях хранить открытые дескрипторы или что-то вроде того, т.е. неразделяемые ресурсы. это плохая архитектура однозначно. авторМожно ж не постить каждые 30 сек.? можно поддерживать соединение. если постить каждый 30 сек, надо пол минуты ждать, прежде чем зайти с другого компа. решение так себе. ShSerge прописать сессионной куке яваскриптом, на унлоад боди, экспирес вчерашним днём вот этого делать не нужно. сессионная кука итак сама по себе умирает при закрытии браузера. а вот послать месседж на сервер можно, но как я говорил, гарантий что это случится нет. браузер можно просто выгрузить из памяти или нажать кнопку реЗет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 10:24 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
hVostt...WebSockets — идеальное решение... Оно - не решение. Сессия, один хрен, разорвётся, ртфм. hVostt...сессионная кука итак сама по себе умирает при закрытии браузера... При закрытии страницы в браузере, если браузер не закрыт, или ещё один экземпляр этого браузера запущен, не умирает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 11:05 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSerge, так речь шла о закрытии браузера, а не вкладок. условия уже изменились? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 11:14 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
alex.potekhinShSergealex.potekhin, Сессия и так рвётся после закрытия брвузера. Именно браузера , а не страницы в закладке. Сорри. Я имел ввиду закладку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 11:35 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
ShSerge, тогда, если осталась хоть одна работающая вкладка на сайт, то закрытие вкладки можно не считать, думаю.. а если закрыта последняя, то это сродни закрытию браузера, правда кука все ещё жива (на случай, если пользователь выберет «восстановить закрытую вкладку»), но разве это имеет значение? то есть, конечно, по регилиозным причинам её можно постараться прибить, но какой в этом смысл? вообще какой-то бред. до сих пор не могу понять, какую роль здесь вообще играют сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 11:44 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
alex.potekhinЧитал форум... Мы сделали просто - в таблице авторизации пользователей добавили sissionID - GUID. Если клиент авторизован и SessionID the same - нормальная работа. Если авторизация истекла или SessionId другая (продолжил с другого компьютера) - запись удаляется что заставляет проходить процесс авторизации снова. Если клиент оставит эту сессию и начнет работать на другом компьютере (даже если он был авторизован до этого) - мы заставляем его снова проходить авторизацию, попутно убивая процесс на другом компьютере. Все очень просто и эффективно в случае если Вам надо чтобы человек имел только одну активную сессию на любом компьютере. Надеюсь что это то, что Вам надо... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 00:30 |
|
||
|
Грамотное решение
|
|||
|---|---|---|---|
|
#18+
Sergey Chalex.potekhinЧитал форум... Мы сделали просто - в таблице авторизации пользователей добавили sissionID - GUID. Если клиент авторизован и SessionID the same - нормальная работа. Если авторизация истекла или SessionId другая (продолжил с другого компьютера) - запись удаляется что заставляет проходить процесс авторизации снова. Если клиент оставит эту сессию и начнет работать на другом компьютере (даже если он был авторизован до этого) - мы заставляем его снова проходить авторизацию, попутно убивая процесс на другом компьютере. Все очень просто и эффективно в случае если Вам надо чтобы человек имел только одну активную сессию на любом компьютере. Надеюсь что это то, что Вам надо... Good luck! Неплохое решение, но...! Человек работает на сайте, а в это время гнусный злоумышленник, ранее укравший у него пароль, садится за другой комп, входит под реквизитами владельца аккаунта и - .... Можно конечно сказать, а нефиг щелкать...., но здесь технический форум и задачка актуальна. Итак, как узнать, что браузер закрыт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2013, 14:15 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38297525&tid=1358168]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 360ms |

| 0 / 0 |
