ASP.NET Cookies дублируются для поддоменов

У меня есть два сайта asp.net. один из них подобен domain.com, а второй - sub.domain.com. Домен.com устанавливает файлы cookie aspxauth при входе в систему и удаляет их (по истечении срока действия в прошлом) при выходе из системы. Домен cookie - ".domain.com", поэтому он доступен с обеих сторон. sub.domain.com пассивно относится к cookie-файлам и просто пытается прочитать cookie-файлы и аутентифицировать пользователя, если cookie-файл был найден.

Эта проблема. Через некоторое время браузер получает вторые файлы cookie ASPXAuth с доменом "domain.com" (без "."), Поэтому выход из системы не работает, поскольку удаляется только первый (".domain.com") файл cookie.

Конфиг есть

<authentication mode="Forms">
  <forms loginUrl="~/account/login" timeout="2880" domain=".domain.com"/>
</authentication>

Установить печенье

public static void SetAuthCookie(IUserPrincipal principal, DateTime expiration)
    {
        var ticket = new FormsAuthenticationTicket(1, principal.Identity.Name, DateTime.Now, expiration, false,
            principal.SessionId, FormsAuthentication.FormsCookiePath);

        var encTicket = FormsAuthentication.Encrypt(ticket);
        var response = HttpContext.Current.Response;

        if (response.Cookies[FormsAuthentication.FormsCookieName] != null)
        {
            response.Cookies.Remove(FormsAuthentication.FormsCookieName);
        }

        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)
        {
            Expires = expiration,
            Secure = FormsAuthentication.RequireSSL,
        };
        response.Cookies.Set(cookie);
    }

Удалить куки

 public static void SignOut()
    {
        SetContextPrincipal(null);
        FormsAuthentication.SignOut();
    }

0 ответов

Другие вопросы по тегам