2014-04-09 3 views
0

Я пытаюсь избежать проблемы, с которой пользователи сайта, над которым я работаю, могут открыть новую вкладку браузера и в конечном итоге обменяться тем же сеансом.Кулинарные сессии в MVC вызывают совместный сеанс между отдельными вкладками в браузере

Я пытался использовать Cookieless sesisons, но консенсус в том, что Cookieless сеансы не поддерживаются в MVC, но работать при определенных условиях

Definitive не поддерживается ответ здесь: ASP.NET MVC and using cookieless sessions

Это кажется взломом, особенно, поскольку вы не можете использовать POST: MVC2 Cookieless Session Issue using POST

Итак, как вы предотвращаете просмотр нескольких вкладок как один и тот же сеанс на сервере, пожалуйста?

ответ

1

вкладки браузера имеют один и тот же идентификатор сеанса, так как идентификатор поступает из браузера. HTML5 SessionStorage, window.sessionStorage, устраняет это ограничение. Это может быть небезопасно в зависимости от обратной совместимости, в которой вы нуждаетесь.

Это глубже. How to differ sessions in browser-tabs?

+1

Спасибо. Решил его с помощью Guid(), переданного в представление в модели, чтобы сервер мог сопоставить опубликованные данные с соответствующей вкладкой – SkeetJon

+0

@SkeetJon - Привет, я столкнулся с той же проблемой в MVC. пожалуйста, вы можете отправить ответ с некоторым примером кода. Как вы решаете эту проблему с помощью Guid() в MVC ... Заранее спасибо – prog1011

+0

добавьте guid как свойство модели, а затем, когда он отправлен обратно, сервер знает, к какой сессии он относится – SkeetJon