Сеансовые куки ASP.NET - определение основного домена

По умолчанию ASP.NET установит его cookie для использования "mydomain.com" в качестве их основы. Я предпочел бы сделать, чтобы они использовали "www.mydomain.com" вместо этого, так, чтобы у меня могли быть другие субдомены "sub.mydomain.com", которые без cookie.

Я сделал некоторое рытье в объекты Сессии и Cookie, и в то время как я могу найти, как установить домен для единственного cookie, я не вижу способ установить его для всех Сеансовых куки.

Кто-либо идеи?

19
задан Jason Kester 24 February 2010 в 14:06
поделиться

2 ответа

Создайте 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";
        }
    }
}
23
ответ дан 30 November 2019 в 03:33
поделиться

Сессия использует только одну cookie, так почему бы вам не установить домен только для ASP.NET_SessionId cookie?

1
ответ дан 30 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: