Тэги

Silverlight (36) WPF (10) IIS (7) Visual Studio (7) SharePoint (6) .Net Framework (5) ODP.NET (5) ASP.NET (4) C# (4) common (4) Network Settings (3) JavaScript (2) MS Office (2) Resharper (2) WCF (2) WEB (2) XPath (2) XSLT (2) ADO.NET (1) APEX (1) CMD (1) CSS (1) EF (1) HTML (1) Hardware bugs (1) Java (1) MS SQL (1) Oracle (1) PDF (1) Version Control (1) XAML (1)

вторник, 2 марта 2010 г.

WEB-серия. Разделение состояний между вкладками браузера одного сайтадля WEB-сервера

Задача: Нужно разделить состояние сессии, которое обычно подтягивается (извлекается для запроса) по ключу в Cookie.
Так как сессионные коки общие для всех вкладно одного сайта в одном окне (и общие для окон открытых по Контрол-N), то разделить сессионные данные невозможно между разными вкладками одного сайта.
Это особенно критично для корпоративных приложений.
Решение:
На данный момент решение в HTTP только одно – добавить ключк в строку запроса. То есть добавить ключ в QueryString. По этому ключу различать состояния сессий.
Замечания для ASP.NET:
Не используйте для хранения таких данных Session! Используйте Cache.
Проблема: При таком решении обновление страницы (F5) приводит к поторе ее состояний, т.к. трудно отличить открытие новой вкладки и обновление страницы. Хотя, это возможно при помощи JavaScript и Cookie.
Это было сделано более двух лет назад и тогда я перепробоавл много вариантов, но реально рабочий оказался этот.

Комментариев нет:

Отправить комментарий