Состояние сеанса обмена между 2 приложениями ASP.NET с использованием SQL Server

StackOverflow https://stackoverflow.com/questions/2402785

Вопрос

Я работаю на сайте, на котором необходимо обмениваться сеансом между приложением CMS и приложением интернет -магазина в том же домене, например.

mydomain.com

а также

store.mydomain.com

Я добился некоторого прогресса с этим, и это работает на моей местной сборке между

localhost/cms

а также

localhost/store

В основном я сделал то, что предлагается в этой статье

http://blogs.msdn.com/toddca/archive/2007/01/25/sharing-asp-net-session-state-across-applications.aspx

и взломал хранимую процедуру TempagAppid, чтобы вернуть тот же идентификатор приложения (1). Похоже, что это работает, поскольку создает сессии с такими идентификаторами, такими как «Abv5d2urx1asscfwuzw3wp4500000001», что я и ожидаю.

Моя проблема в том, что когда я развертываю его в нашей среде тестирования, это создает новый сеанс, когда я перемещаюсь между двумя сайтами. Поэтому, когда я запускаю сеанс на сайте CMS, если я перейду в магазин, он создает новый сеанс. Они настроены как 2 разных сайта в IIS7.

В файлах web.config для обоих сайтов и элементы одинаковы и являются следующими (минус конфиденциальная информация)

У кого -нибудь есть идеи, почему это может не работать? Я делюсь аутентификацией форм на 2 сайтах, и это работает нормально. Любая помощь или идеи были бы очень оценены!

Большое спасибо

Дэйв

Это было полезно?

Решение

Похоже, что проблема, с которой мы столкнулись, заключалась в том, что сессионный домен cookie -файла был по -разному устанавливаться в 2 приложениях. Это означало, что каждое приложение сгенерировало свое собственное сеанс.

Мы добавили<httpCookies domain=".ourdomain.co.uk" /> для нашего Web.Config, и это, кажется, решило это. Спасибо за помощь, надеюсь, это поможет кому -то еще в будущем.

Другие советы

Сохраняйте все данные сеанса на SQL-сервере, используя ID Session-ID в качестве ключа. Затем используйте файл cookie, содержащий сеанс-идентификатор, который указывает на .mydomain.com Таким образом, он будет доступен на обоих поддомах.

Этот Статья за 15 секунд охватывает предмет и даже показывает технику для обмена сеансами в совершенно разных областях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top