更改FedAuth cookie的SameSite属性?

时间:2020-09-25 14:44:48

标签: asp.net-mvc google-chrome cookies iframe samesite

我很难更改ASP.NET MVC应用程序上的SameSite属性。这是场景: 我正在尝试将iASP.NET应用程序加载到iframe中,并且由于Google Chrome 80+中的更改,我需要为cookie设置SameSite属性,以便能够在iframe中使用身份验证cookie。我点击了此链接SameSite Cookie

并应用了更改,但是由于某些原因,这不会更改FedAuth和FedAuth cookie的SameSite属性。 这是用于创建会话cookie的代码:

var $total = $(".order-total");
if ($total.length)
  localStorage.setItem("ordertotal", $total.text());

var finalTotal = localStorage.getItem("ordertotal");
$(".col-6").append(finalTotal);

web.config

SessionAuthenticationModule session = FederatedAuthentication.SessionAuthenticationModule;
SessionSecurityToken sToken = session.CreateSessionSecurityToken(principal, null, DateTime.UtcNow, DateTime.UtcNow.AddHours(24), isPersistant);
            session.AuthenticateSessionSecurityToken(sToken, true);
session.WriteSessionTokenToCookie(sToken);

您有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我对使用wsfed还是很陌生,但是将其添加到我的Global.asax.cs中似乎对我有用:

void WSFederationAuthenticationModule_SignedIn(object sender, EventArgs e)
{
  foreach (string key in Response.Cookies.AllKeys)
  {
    if (key.StartsWith("FedAuth"))
    {
      var cookie = Response.Cookies[key];

      cookie.SameSite = SameSiteMode.None;
      cookie.Secure = true;
    }
  }
}