Создайте нестойкий cookie с FormsAuthenticationTicket

Я испытываю затруднения при создании нестойкого cookie с помощью FormsAuthenticationTicket. Я хочу сохранить userdata в билете, таким образом, я не могу использовать FormsAuthentication. SetAuthCookie () или FormsAuthentication. GetAuthCookie () методы. Из-за этого я должен создать FormsAuthenticationTicket и сохранить его в HttpCookie.

Мой код похож на это:

DateTime expiration = DateTime.Now.AddDays(7);

// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2,
    user.Email,
    DateTime.Now,
    expiration,
    isPersistent,
    userData,
    FormsAuthentication.FormsCookiePath);

// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
cookie.Path = FormsAuthentication.FormsCookiePath;
if (isPersistent)
    cookie.Expires = expiration;

// Add cookie to response
HttpContext.Current.Response.Cookies.Add(cookie);

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

Действительно ли нестойкий cookie является тем же как сеансовыми куки? Информация о куки хранится в sessiondata на сервере, или cookie передаются в каждом запросе/ответе серверу?

7
задан j08691 14 October 2015 в 17:29
поделиться