Cookies don't persist after refresh

5k Views Asked by At

I am using c# and mvc. I am trying to write a cookie to the user browser. But after a refresh of the browser the cookie disappears.

This is my code for writing the cookie:

 movieCookie = new HttpCookie(cookieName);
 movieCookie.Value = "test;
 movieCookie.Expires = DateTime.Now.AddDays(30);
 //add the cookie 
 HttpContext.Current.Response.Cookies.Add(movieCookie);

and the one for reading the cookie:

//check if such cookie exist
HttpCookie movieCookie = null;
if (HttpContext.Current.Request.Cookies.AllKeys.Contains(cookieName))
    movieCookie = HttpContext.Current.Request.Cookies[cookieName];

Another thing to add is that when I searched "AllKeys" like so:

HttpContext.Current.Request.Cookies.AllKeys

it shows an empty string array, for some reason. any ideas?

2

There are 2 best solutions below

1
On

Some possibly silly questions

  • Check your web-servers time and date, are they set correctly, if they are (in your case) 2 years out it will expire cookies immediately.

  • Check that cookieName is the same

  • Check that after setting the cookie to the response your not redirecting before the cookie is set. For a cookie to be set you need to set headers and push them out.

0
On

I solved it. It appears that in MVC the "return view" after the cookie creation, cause the cookie not to be saved.