2015-05-20 1 views
1

Мне нужно разделить сессию asp.net между двумя веб-сайтами на одном и том же IIS.Обмен сеансом ASP.Net между двумя веб-сайтами на IIS8 не работает

  • Я создал специальный сеанс db и захватил хранимую процедуру, чтобы вернуть тот же самый appID независимо от приложения или URL-адреса.

  • Я создал строку подключения для БД в web.config:.

< добавить имя = "dbConnSession" ConnectionString = "сервер = xx.xxx.xx.xx; базы данных = ASPNETSession; Пользователь Id = ххх; Password = ххх»ProviderName = "System.Data.SqlClient"/>

  • Тогда я определил состояние сеанса:

< sessionState allowCustomSqlDatabase = "истина" Cookieless = режим "AutoDetect" = "SQLServer" sqlCommandTimeout = "10" sqlConnectionString = "dbConnSession" тайм-аут = "120" sqlConnectionRetryInterval = "2" />

Я разработал сайты на моей машине Win7 с IIS7, и система входа в систему работает отлично. Я могу войти с одного сайта, перейти на другой сайт и оставаться в системе.

Я переместил 2 сайта на веб-сервер (окна 2012 с IIS8.5), а общий сеанс не работает. Сайты просто не используют сеанс. Я установил значение сеанса на одном сайте и попытался увидеть его на другом, а значение сеанса - как null. Сама же тестовая страница работает на IIS7.

Кто-нибудь знает, почему у IIS8.5 возникают проблемы с чем-то работающим на IIS7?

+0

Идентификатор сеанса хранится в файле cookie. По умолчанию cookie не может быть передан по доменам из-за соображений безопасности, если они не являются поддоменами. Каковы их URL-адреса? – Win

+0

Это поддомены. т.е.: site1.domain.com и site2.domain.com – dvdmn

+0

Какой метод аутентификации вы используете? Вы используете FormAuthentication? – Win

ответ

0

Вам необходимо добавить машинный ключ, который будет одинаковым для обоих конфигурационных файлов.

Если идет в system.web и выглядит примерно так:

<machineKey validationKey="[your key]" decryptionKey="[dec key]" validation="SHA1" /> 

Есть несколько инструментов, если вы нагуглить, что создаст для вас.

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

Смежные вопросы