web-dev-qa-db-ja.com

ASP.NET Core 2.1でのCookieの使用

単純なASP.NET Core 2.1アプリケーションがあり、これを設定してからCookieを読み取ることになっています。

Cookieを読み取ろうとすると、nullが返されます。ブラウザの検査ツールをさらに調べると、見つけることができません。

私はこの小さな実装を思いついて、何が起こっているかを整理できるかどうかを確認しましたが、うまくいきません。

 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");
 }

変数bohは、前の行で書き込まれた場合でも、デバッガーを介して検査されるとnullです。

5
Sergio Di Fiore

初めて設定した直後にCookieを読み取ることはできません。応答によってCookieが作成されると、それを読み取ることができます。このことを考慮:

public async Task<IActionResult> OnPostCreateAsync()
{

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

そして、GetメソッドでCookieを読み取ることができます。

public void OnGet()
{
    var boh = Request.Cookies["Emailoption"];
}
12