Cookie сессии ASP.NET - указание базового домена
По умолчанию ASP.NET будет устанавливать свои файлы cookie для использования "mydomain.com" в качестве базы. Я предпочел бы, чтобы они использовали "www.mydomain.com" вместо этого, так что у меня могут быть другие поддомены "sub.mydomain.com", которые не содержат файлов cookie.
Я сделал некоторые копания в объектах Session и Cookie, и пока я могу найти, как установить домен для одного файла cookie, я не вижу способа установить его для всех файлов cookie сеанса.
Кто-нибудь идеи?
Ответы
Ответ 1
Создайте ISessionIDManager, так как вы хотите изменить домен cookie, мы разрешим по умолчанию выполнять всю работу.
Этот параметр настроен в файле web.config на элементе sessionState в <system.web>
.
<sessionState sessionIDManagerType="MySessionIDManager" />
И реализация.
public class MySessionIDManager: SessionIDManager, ISessionIDManager
{
void ISessionIDManager.SaveSessionID( HttpContext context, string id, out bool redirected, out bool cookieAdded )
{
base.SaveSessionID( context, id, out redirected, out cookieAdded );
if (cookieAdded) {
var name = "ASP.NET_SessionId";
var cookie = context.Response.Cookies[ name ];
cookie.Domain = "example.com";
}
}
}
Ответ 2
Я понимаю, что это старый вопрос, но вы могли бы использовать атрибут domain
раздела конфигурации httpCookies вместо этого в коде
<httpCookies domain="String"
httpOnlyCookies="true|false"
requireSSL="true|false" />
Ответ 3
В сеансе используется только один файл cookie, поэтому почему вы не устанавливаете домен только для cookie ASP.NET_SessionId?