Gra*_*Cat 6 c# cookies asp.net-core
我试图将带有ASP.NET Core的cookie的SameCookie属性显式设置为None。
我尝试执行此操作的方法是这样设置CookieOptions的属性值:
var options = new CookieOptions
{
SameSite = SameSiteMode.None
};
Run Code Online (Sandbox Code Playgroud)
(为简便起见,省略了其他属性)
但是,当我检查服务器响应标头(服务器应该使用SameSite = None设置cookie)时,可以看到SameSite被省略了。相反,我可以清楚地看到“价值”,“到期”,“甚至安全”。
如果我将C#代码中的SameSite设置为Lax或Strict,则可以看到它明确包含在Set-Cookie标头中。如果将其设置为“无”,则无法。
我确实检查了两个浏览器-Firefox和Chrome 77(我知道此版本引入SameSite的更改)。
有一个hack包含SameSite = None。您只需要向CookieOptions的Path属性添加以下行:
options.Path += "; samesite=None";
Run Code Online (Sandbox Code Playgroud)
然后可以在响应的Set-Cookie标头中找到它。
有没有一种方法可以配置Kestrel(没有用于托管的IIS,裸Kestrel)在标头中包含SameSite = None,而不会像这样骇客呢?
该问题现已通过最新版本的 .NET Framework 和 .NET Core 得到修复。
正如我已经在另一篇文章/sf/answers/4129876271/中发布的那样,cookie 选项SameSiteMode.None现在按预期工作。
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |