общее состояние сеанса через поддомен - PullRequest
1 голос
/ 16 мая 2011

Я прочитал тысячи документов, но у меня ничего не работает.

1) Что я хочу: на моей стороне сервера я использовал следующую переменную:

(string)Session["myData"]

2) Когда яизменил поддомен

www.myDomain.com/myPage.aspx
OR
myDomain.com/myPage.aspx
OR
myUser.myDomain.com/myPage.aspx

Моя проблема: я теряю данные сеанса при переходе из одного домена в другой.

3) Я хочу сохранить состояние сеанса только с cookie и в режиме inproc:

  <sessionState mode="InProc" cookieless="UseCookies"  cookieName="myDomain.com" timeout="10000">     </sessionState>
  <authentication mode="Windows"/>

Я добавил в web.config:

<httpCookies domain="myDomain.com"  />

или

 <httpCookies domain=".myDomain.com"  />  

или

 <httpCookies domain=".myDomain.com" httpOnlyCookies="true" />

Но ничего не получалось.

Спасибо за любые советы.

1 Ответ

1 голос
/ 16 мая 2011

Короткий ответ, вы не можете выполнить все свои критерии.

Возможные решения:

  • Перенаправить любой запрос с входящим доменом «xxx.myDomain.com» на общий «www.myDomain.com». Это может включать изменение «myUser.myDomain.com» на «www.myDomain.com/default.aspx?&user=myUser». Поскольку это переадресация, ваш пользователь увидит, что адрес в его строке изменен, и, следовательно, получит некоторые сведения о том, как колбаса создается на вашем сайте (полезно для злоумышленников).
  • НИКОГДА не обращайтесь к вашему домену прямо с вашего собственного сайта. Все URI должны быть связаны с корнем вашей веб-структуры. Это должно позволить вам избежать смены доменов и, следовательно, потери состояния сеанса.
  • Использование SQLServer для управления состоянием сеанса: http://support.microsoft.com/kb/2527105. Для этого потребуется изменить обработку сеанса с InProc с файлами cookie на SQLServer, а также некоторые другие изменения конфигурации.
...