starałem się ustalić, czy ciasteczko istniał i jeżeli upłynął z tym kodem:Jak najlepiej sprawdzić, czy plik cookie istnieje?
if(HttpContext.Current.Response.Cookies["CookieName"]){
Do stuff;
}
Jednak po długich godzinach łez i potu zauważyłem, że ta linia została faktycznie tworząc pusty plik cookie lub zastąpieniem istniejących cookies, a jej wartość będzie pusty, a wygasa w 0.
i rozwiązać ten wykonując przeczytaniu wszystkich plików cookie i patrząc na mecz takiego zamiast
if (context.Response.Cookies.AllKeys.Contains("CookieName"))
{
Do stuff;
}
to nie wydaje optymalna, a znajdę dziwne, że moja pierwsza próba stworzyła plik cookie. Czy ktoś ma dobre wytłumaczenie dla cookie?
Mieliśmy funkcję, która utworzyła cookie po kliknięciu przycisku. Następnie chcieliśmy sprawdzić istnienie tego pliku cookie podczas Page_PreRender. Do tego czasu plik cookie nie jest jeszcze dostępny, ponieważ nie wysłaliśmy odpowiedzi z nowym plikiem cookie. Dlatego stworzyliśmy własność, która najpierw szukała ciasteczka w Odpowiedzi, a następnie, jeśli nic tam nie było, w Żądaniu. – Cammy
To, co było naprawdę mylące, to to, że pierwszy blok, którego używałem, zawsze zwracał plik cookie (czasami pusty, ponieważ próba pobrania nieistniejącego pliku cookie z odpowiedzi spowoduje jego automatyczne utworzenie). – Cammy