Chrome 76は、明示的なSameSite: None
属性のサポートを開始します
https://web.dev/samesite-cookies-explained/
ASP.NET Coreの現在の実装はSameSiteMode.None
を何もしないものとして扱い、属性を送信しないことがわかりました。 Cookieにカスタム属性を追加して、明示的にSameSite: None
をCookieテキストに追加するにはどうすればよいですか?
Cookie値に属性を追加すると、HttpResponse.Cookies.AppendがCookie値をURLエンコードするため機能しません。
response.Headers.Append("set-Cookie", $"{cookieName}={cookieValue}; path=/; SameSite=None; Secure");
は期待どおりに動作するようです。
same-site-by-default-cookies
およびcookies-without-same-site-must-be-secure
in Chrome Dev 76
ASP.NET Coreと同じ問題がASP.NETでも発生します。
マイクロソフトが修正を作成するまで、私のために働いているハックは置き換えます
myCookie.Path = "/";
myCookie.SameSite = SameSiteMode.None; // has no effect
と
myCookie.Path = "/; SameSite=None";
これにより、HTTP応答のSameSite=None
ヘッダーにset-cookie
が追加されます。
すべてのバージョンの.NET Frameworkと.NET Coreの最新リリースで修正されました( https://github.com/aspnet/AspNetCore/issues/12125 )
.NET Core 2.2で複数のプロジェクトを実行していますが、2.2.207にアップグレードした後、問題は発生しなくなりました。
ここでは、Startup.cs
ファイルのConfigureServices
メソッドにあるサンプルコード
services.ConfigureApplicationCookie(options => {
options.Cookie.SameSite = SameSiteMode.None;
);
[編集] nugetからすべてのdllとパッケージを使用している場合は、Microsoft.Net.Http.Headersがバージョン2.2.8であることを確認する必要があります上記。
2019年12月10日のマイクロソフトからの最後のKBの後、それは.netフレームワークとdotnetcoreで修正される必要があります。
見る: