2011-04-15 4 views
2

Я использую объекты сеанса в своем веб-приложении, которые, как мы все знаем, отслеживаются cookie сеанса ASP.NET. Поэтому доступ к этому файлу cookie имеет важное значение для доступа к объектам сеанса. Я хочу, чтобы мое приложение asp.net работало под http:// и http://www или любым поддоменом (домен неизвестен мне во время разработки).Динамически настраивать домен cookie сеанса в ASP.NET

+0

Вы имеете в виду, как делиться куки-файлами в поддомене .. или когда они используются с «www» .... ??? – sajoshi

ответ

0

Невозможно сделать. Файл cookie сеанса работает только для 1 домена и только 1 домена.

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


После нескольких размышлений я решил, что не уверен. :) Возможно, если оба поддомена сопоставляются с одним и тем же приложением ASP.NET, вы можете заставить сеанс совместного использования работать. Все, что вам придется сделать, это установить кук, как например:

<httpCookies domain=".maindomain.com"> 

Если различные subdomians не отображаются в том же приложение, я думаю, что вы обязательно должны написать свое собственное управление сеансами.


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

+0

Возможно. Домен не изменится в жизненном цикле приложения. Это известно однажды. Вы можете получить текущий домен через 'Request.Url' и установить' ASP.NET_SessionId' во время выполнения, но это немного сложно, и я не знаю, как это сделать. – Xaqron

+0

Теперь мы ближе. На самом деле я делаю то же самое, что и ваше предложение (usnig 'httpCookies' в webconfig), но ищет некоторый код для размещения страниц aspx, где сеанс обрабатывается. Затем я могу удалить этот жесткий ключ и приложение web.config в любом домене. Мне нужно сделать то, что делает этот ключ в коде (где во время выполнения я знаю домен). – Xaqron

-1

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

+0

Нет. Оставив его пустым, он будет использовать * точно * домен, из которого пришел запрос. Итак, если вы на www.site.com, cookie будет установлен на www.site.com и НЕ будет доступен для * .site.com. – Jasmine

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