Я пытался определить, существует печенье и, если он истек с этим кодом:Как лучше проверить, существует ли файл cookie?
if(HttpContext.Current.Response.Cookies["CookieName"]){
Do stuff;
}
Однако после долгих часов слез и пота, я заметил, что эта линия была на самом деле создает пустой печенье или перезаписать существующий печенья и его значение, чтобы быть пустым и истекает в 0.
Я решил эту проблему, делая чтение все куки и ищет матч, как, что вместо
if (context.Response.Cookies.AllKeys.Contains("CookieName"))
{
Do stuff;
}
Это не кажется оптимальным, и я считаю,Странно, что моя первоначальная попытка создала файл cookie. У кого-нибудь есть хорошее объяснение для печенья?
Мы имели функцию, которая создала печенье после нажатия на кнопку. Затем мы хотели проверить наличие этого файла cookie во время Page_PreRender. К тому времени cookie еще не находится в запросе, так как мы не отправили ответ с новым файлом cookie. Поэтому мы создали свойство, которое сначала искало файл cookie в Response, а затем, если там ничего не было, в запросе. – Cammy
Что было действительно запутанным, так это то, что первый if-block, который я использовал, всегда возвращал cookie (иногда пустой, поскольку попытка получить несуществующий файл cookie из Response автоматически создаст его). – Cammy