#c# #asp.net #session
#c# #asp.net #сеанс
Вопрос:
Возможно ли создавать отдельные сеансы при открытии одной и той же веб-страницы на двух разных вкладках одного и того же браузера
<sessionState mode="InProc" cookieless="UseUri"></sessionState>
Я не хочу отображать URL-адрес, например
http://localhost/SampleWeb/(S(afdg3ires1ik0lmjm3pkjtzl))/default.aspx
Ответ №1:
Это зависит от вашей реализации —
-
Если вы используете сеанс cookie, который браузер создал сам, и используете его в своем приложении, то
NO
. Это невозможно. Поскольку это зависит от браузера, а браузеры обычно используют один и тот же сеанс (который сохраняется в файле cookie, и для одного сайта существует только одно пространство имен файлов cookie) для нескольких вкладок. -
Но если вы используете сеанс без cookies и используете ключ сеанса в качестве
url
параметров, то это возможно. В этом случае вам может потребоваться реализовать или использовать свой собственный пользовательский менеджер сеансов для управления сеансами.
ASP.В Net, вероятно, есть система управления сеансами без использования Cookies, но я ее раньше не использовал. Возможно, вы захотите попробовать это. Вы можете найти документацию здесь —
Если вы используете сеанс без cookies, к ключу сеанса добавляются URL-адреса, и, таким образом, вы можете рассматривать разные вкладки так, как если бы они были разными вкладками браузера, так что это может сработать для вас. Поскольку в этом сценарии браузер не может идентифицировать оба одинаковых сайта и должен использовать один и тот же сеанс, поскольку они не используют файлы cookie.
Комментарии:
1. Но возможно ли скрыть имя сеанса из URL для сеанса без приготовления?
2. Вы не можете скрыть это, потому что это параметр запроса, лучше использовать хэш Md5 или хэш SHA или использовать отдельную таблицу только для хранения того, какой пользователь связан с сеансом, затем назначить этот идентификатор сеанса и использовать его в URL, чтобы пользователь, который его видит, ничего не получил от этого.