Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using cookies in ASP.NET Core 2.1 [duplicate]

I have a simple ASP.NET Core 2.1 application which is supposed to set and then read a cookie.

Whenever I try to read the cookie it returns null. Looking further in the browser's inspect tool I am unable to find it.

I came up with this small implementation to see if I can sort out whats going on, but it is not working..

 public async Task<IActionResult> Contact(Contato contato)
 {
    await email.SendAsync(contato);

    var option = new CookieOptions();
    option.Expires = DateTime.Now.AddMinutes(10);
    Response.Cookies.Append("EmailEnviado", "true", option);
    var boh = Request.Cookies["EmailEnviado"];

    return RedirectToAction("Contact");
 }

The variable boh, when inspected through the debugger is null, even though it was written in the previous line.

like image 576
Sergio Di Fiore Avatar asked Sep 05 '18 18:09

Sergio Di Fiore


1 Answers

You won't be able to read the cookie right after you set it the first time. Once the cookie is created by the response, you will be able to read it. Consider this:

public async Task<IActionResult> OnPostCreateAsync()
{

    var option = new CookieOptions();
    option.Expires = DateTime.Now.AddMinutes(10);
    Response.Cookies.Append("Emailoption", "true", option);
    return RedirectToPage();
}

And then you can read the cookie in the Get method:

public void OnGet()
{
    var boh = Request.Cookies["Emailoption"];
}
like image 165
Pushkar Shembekar Avatar answered Oct 05 '22 19:10

Pushkar Shembekar