Неправильный сеанс другого пользователя - PullRequest
0 голосов
/ 16 декабря 2011

Я создал сайт asp.net, который использует объекты Session для хранения информации для каждого вошедшего в систему пользователя. Чтобы проверить, вошел ли пользователь в систему, я проверяю, существует ли определенный объект в сеансе.

Система использовала аутентификацию Jasig CAS, и единый вход в систему работает (как в случае: после входа объект Session пользователя настроен правильно).

CAS также поддерживает единый выход. Это происходит так, что CAS вызывает URL-адрес на моем сайте с некоторыми параметрами для сеанса CAS.

Что мне нужно сделать сейчас, это сделать недействительными все объекты Session для указанного пользователя.

Как я могу со страницы моего сайта сделать недействительным объект Session случайного другого пользователя? Есть ли БД, которую я могу очистить, все это в памяти (я могу посмотреть на web.config, если знаю, что искать)?

Я видел этот вопрос, заданный ранее, и большинство ответов таковы: «держите глобальную переменную рядом с глобальной переменной Session и проверьте ее тоже, чтобы увидеть, должен ли пользователь выйти из системы или нет», но я не нравится это решение ...

Ура! * * 1013

1 Ответ

0 голосов
/ 16 декабря 2011

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

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

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

...