クッキーを設定する
レスポンスにクッキーを設定するには、IResponseCookies.Appendメソッドを使います。
// クッキーを設定する HttpContext.Response.Cookies.Append("test", "Hoge"); // レスポンスに追加されるSet-Cookieヘッダ //Set-Cookie: test=Hoge; path=/
ASP.NETのときは、1つのクッキーに複数のキーバリューを簡単に設定できましたが、Coreでは自分で実装する必要がありそうです。そういった使い方をあまりしなくなったのかな。
クッキーを取得する
リクエストからクッキーを取得するには、IRequestCookieCollectionインターフェイスを使います。
// 次のようなCookieヘッダが送られてくるとして //Cookie: test=Hoge // クッキーを取得 var value = HttpContext.Request.Cookies["test"]; Console.WriteLine(value); // Hoge // TryGetValueメソッドを使ってクッキーを取得するのもあり if (HttpContext.Request.Cookies.TryGetValue("test", out var value)) { Console.WriteLine(value); // Hoge }
インデクサで取得する場合、クッキーがないと戻り値はnullになります。
クッキーを削除する
クッキーを削除(=HTTPレスポンスに期限切れの空のクッキーを設定)するには、IResponseCookies.Deleteメソッドを使います。
// クッキーを削除する HttpContext.Response.Cookies.Delete("test"); // レスポンスのSet-Cookieヘッダ //Set-Cookie: test=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; samesite=lax
とりあえず基本はこんな感じですかね。