web-dev-qa-db-ja.com

SameSite Cookie属性を明示的に設定する方法なしASP NET Core

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エンコードするため機能しません。

10
dmi_

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

1
dmi_

ASP.NET Coreと同じ問題がASP.NETでも発生します。

マイクロソフトが修正を作成するまで、私のために働いているハックは置き換えます

myCookie.Path = "/";
myCookie.SameSite = SameSiteMode.None;     // has no effect

myCookie.Path = "/; SameSite=None";

これにより、HTTP応答のSameSite=Noneヘッダーにset-cookieが追加されます。

7
GStephens

すべてのバージョンの.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;
);
6
Xavierh95

[編集] nugetからすべてのdllとパッケージを使用している場合は、Microsoft.Net.Http.Headersがバージョン2.2.8であることを確認する必要があります上記。

2019年12月10日のマイクロソフトからの最後のKBの後、それは.netフレームワークとdotnetcoreで修正される必要があります。

見る:

  1. https://docs.Microsoft.com/en-us/aspnet/samesite/system-web-samesite
  2. https://docs.Microsoft.com/en-us/aspnet/samesite/kbs-samesite
3
Ygalbel

他の回答では.Net Core修正について言及しているため、その部分はスキップします。

.Net Framework修正プログラムは、「品質ロールアップ」を介して提供されます。

ここ は.Net 4.8のKBです。

ここ は、.Net 4.7.2のKBです。

ここ は関連するMSDNソースです。

0
tsemer