Удаление вложенных значений файлов cookie ASP.NET - PullRequest
0 голосов
/ 10 августа 2009

Как удалить определенное значение из определенного файла cookie в ASP.NET?

Например: у меня есть Cookie с именем 'MyCookie', и он содержит значения 'MyCookieValueOne', 'MyCookieValueTwo', 'MyCookieValueThree'.

Теперь мне нужно удалить значение 'MyCookieValueTwo'.

Что мне делать?

Можем ли мы использовать любое из следующих свойств для достижения этой цели?

Request.Cookies["MyCookie"].Value
Request.Cookies["MyCookie"].Values

а почему?

1 Ответ

6 голосов
/ 10 августа 2009

Редактировать: ОК, неправильно прочитал вопрос. HttpCookie.Values ​​- это коллекция NameValueCollection, поэтому вы можете изменить эту коллекцию, но вам потребуется повторно отправить файл cookie как новый, чтобы перезаписать старый:

HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
    cookie.Values.Remove("KeyNameToRemove");
    Response.AppendCookie(cookie);
}

Чтобы «удалить» весь файл cookie, вам необходимо «истечь» - измените дату его истечения и повторно отправьте его клиенту:

HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
    cookie.Expires = DateTime.Today.AddMonths(-1);
    Response.AppendCookie(cookie);
}

Работа с файлами cookie в .NET, к сожалению, не слишком понятна. AddMonths () является произвольным. Я использую один месяц, вы можете использовать все, что угодно - просто убедитесь, что дата истечения срока действия установлена ​​в прошлом относительно часов компьютера получателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...