在 ASP .Net Core MVC Web 应用程序中指定 SameSite=None 和 Secure

Specify SameSite=None and Secure in ASP .Net Core MVC Web Application

我正在使用 ASP .NET Core MVC(.NET 5.0 和 MVC5)创建 Web 应用程序。 在其中一个网页中,有一个需要加载画面视图的 iframe。 对 tableau 服务器的可信身份验证已设置,并且还获取了令牌。 但是画面视图(或任何其他网站)未加载到 iframe 中。

我收到这个错误: 通过指定其SameSite属性来表示是否在跨站请求中发送cookie

当我研究这个问题时,我了解到我们需要将 cookie 属性 设置为 SameSite=None 和 Secure。 请帮助我了解在哪里将 sameSite 属性设置为 none 并确保安全。

不确定这是否会解决您的问题,但这是用于跨站点和安全发送 cookie 的配置:

ConfigureServices中:

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.Cookie.Name = "your-cookie";
                options.Cookie.IsEssential = true; // to bypass consent check
                options.Cookie.HttpOnly = true; // Only send cookie through HTTP
                options.Cookie.SameSite = SameSiteMode.None;
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
            });

Configure中,在app.UseRouting()之后添加app.UseAuthentication()

请注意,当 Cookie 策略为 CookieSecurePolicy.Always.

时,Asp.net Core 仅允许 SameSiteMode.None

我可以通过在 Tableau Server 端将 Cookie SameSite 属性设置为 None 来解决问题。

我按照本文给出的步骤操作:

https://kb.tableau.com/articles/issue/signing-into-tableau-server-and-loading-embedded-views-fails-on-safari-12-after-upgrading-tableau-server