По умолчанию ASP.NET установит его cookie для использования "mydomain.com" в качестве их основы. Я предпочел бы сделать, чтобы они использовали "www.mydomain.com" вместо этого, так, чтобы у меня могли быть другие субдомены "sub.mydomain.com", которые без cookie.
Я сделал некоторое рытье в объекты Сессии и Cookie, и в то время как я могу найти, как установить домен для единственного cookie, я не вижу способ установить его для всех Сеансовых куки.
Кто-либо идеи?
Создайте ISessionIDManager, поскольку вы хотите изменить только домен cookie, мы позволим стандартному менеджеру сделать всю работу.
Это настраивается в web.config на элементе sessionState в разделе
.
<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";
}
}
}
Сессия использует только одну cookie, так почему бы вам не установить домен только для ASP.NET_SessionId cookie?