Как мне создать постоянный или непостоянный файл cookie? - PullRequest
53 голосов
/ 06 октября 2010

Я не могу понять, как создать постоянный или непостоянный файл cookie.Чем они отличаются, скажем, от отправляемых обратно HTTP-заголовков?

Ответы [ 3 ]

70 голосов
/ 06 октября 2010

Cookies имеют дату истечения срока действия, неявно или явно установленную, которая контролирует, как долго они сохраняются (в зависимости от фактического применения агента пользователя).Файл cookie может сохраняться только в течение сеанса (или даже более короткого периода).

Если файл cookie действителен, он будет передан вместе с HTTP-запросом в домен, из которого он возник.Только домен, который установил cookie, может прочитать cookie (хотя есть способы использовать его, например, межсайтовый скриптинг).

  • Если вы хотите, чтобы срок действия cookie истекал в определенныйвремя, установите для него дату истечения срока действия, используя клиентский или серверный язык по вашему выбору.

  • Если вы хотите, чтобы срок действия куки-файлов истек после окончания сеанса, не устанавливайте срок действияdate.

Из RFC (выделено мое):

Установщик cookie может указать дату удаления, в этом случаеcookie будет удален в эту дату.

Если установщик cookie не указывает дату, cookie удаляется, как только пользователь выходит из своего браузера.

AsВ результате, указание даты - это способ выжить файл cookie во время сеансов. По этой причине файлы cookie с датой истечения срока действия называются постоянными.

В качестве примера приложения торговый сайт может использовать постоянные файлы cookie для хранения товаров, которые пользователи поместили в свою корзину.(На самом деле файл cookie может относиться к записи в базе данных, хранящейся на сайте покупок, а не на вашем компьютере.) Таким образом, если пользователи выходят из браузера, не совершая покупку и возвращаются позже, они все равно находят те же элементы вкорзина, поэтому они не должны искать эти предметы снова.Если бы этим cookie-файлам не была назначена дата истечения срока действия, они истекли бы, когда браузер был закрыт, и информация о содержимом корзины была бы потеряна.

10 голосов
/ 02 августа 2011

Существует два типа файлов cookie в ASP.NET

Постоянные файлы cookie:

Файлы cookie хранятся на жестком диске вашего компьютера.Они остаются на вашем жестком диске и могут быть доступны для веб-серверов, пока они не будут удалены или истек срок их действия.

public void SetPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    cookie.Expires = Convert.ToDateTime(“12/12/2008″);

    Response.Cookies.Add(cookie);
}

Непостоянные файлы cookie:

Файлы cookie сохраняются только во время работы веб-браузера.Они могут использоваться веб-сервером только до тех пор, пока вы не закроете браузер.Они не сохраняются на вашем диске.

public void SetNonPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    Response.Cookies.Add(cookie);
}
6 голосов
/ 07 июня 2011

Файл cookie сеанса

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);

Файл cookie с определенной отметкой времени ( .NET DateTime library )

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);

Постоянный файл cookie

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...