Редактировать: ОК, неправильно прочитал вопрос. 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 () является произвольным. Я использую один месяц, вы можете использовать все, что угодно - просто убедитесь, что дата истечения срока действия установлена в прошлом относительно часов компьютера получателя.