无法获取 IFRAME 加载页面以在 ASP.NET 应用程序中使用 cookie

问题描述 投票:0回答:0

我有一个映射到特定域的 URL 的 ASP.NET 应用程序,该应用程序包含加载 IFRAME 的页面,其 src 指向另一个域的 URL(也是 ASP.NET 应用程序)。

当两个 ASP.NET 应用程序在单个浏览器的单独窗口中打开时,我可以让它们同时工作。

但是,当第一个应用程序中的页面尝试在 IFRAME 中加载第二个时,第二个应用程序似乎没有从应用程序 (IISExpress) 的 Web 服务器接收 cookie(即 Set-Cookie),也没有传输 cookie返回服务器。

这两个应用程序各自具有独立的功能,并在 VisualStudio 中运行(使用 IISExpress 作为 Web 服务器)。

根据我的阅读,要使 IFRAME 接收和传输会话 cookie,Web 服务器必须在 Set-Cookie 标头的末尾传输 SameSite="none"。

我的应用程序的目标框架是 ASP.NET Core 6.0,我使用 MS VisualStudio 2022 (v 17.5.4) 来构建和运行(w/IISExpress 作为 Web 服务器)。显然,在此版本中,在 web.config 文件中设置 SameSite="none" 的选项,即。 e.

<configuration>
 <system.web>
  <httpCookies sameSite="None" requireSSL="false" />
 <system.web>
<configuration>

不可用(无法识别“sameSite”属性,在 ASP.NET v 4.8 之前可用)

所以我想知道 web.config 中是否还有其他配置文件或选项我可以设置为强制 Web 服务器在 Set-Cookie 标头中发送 sameSite="None"。

到目前为止,我找不到任何关于此类选项的在线文档,但显然这可以通过编写 C# 代码来实现...

https://learn.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-7.0

但我正在寻找的是配置文件中的一个简单选项/设置。谢谢

iframe web-config session-cookies asp.net-core-6.0
© www.soinside.com 2019 - 2024. All rights reserved.