C# .NET MVC从处理程序重定向,sameSite=严格cookies

C# .NET MVC从处理程序重定向,sameSite=严格cookies,c#,cookies,httphandler,samesite,C#,Cookies,Httphandler,Samesite,我有个大问题。我正在使用处理程序来处理saml响应。在handler中,我检查是否一切正常,然后使用cookie登录用户 context.Response.Cookies.Add(cookie); 在此之后,我将重定向: context.Response.Redirect("~/", false); 重定向后,用户未登录(我必须刷新页面,他已登录),因为未发送cookie。这些参数设置为SameSite=Strict。 同样在global.asax中,我正在检查用户是否有与实际浏览器的活动会

我有个大问题。我正在使用处理程序来处理saml响应。在handler中,我检查是否一切正常,然后使用cookie登录用户

context.Response.Cookies.Add(cookie);
在此之后,我将重定向:

context.Response.Redirect("~/", false);
重定向后,用户未登录(我必须刷新页面,他已登录),因为未发送cookie。这些参数设置为SameSite=Strict。

同样在global.asax中,我正在检查用户是否有与实际浏览器的活动会话,并且该会话是否不工作,因为没有sessionID==no cookies=>Logoff user。 流程是这样的:

Go to login page -> redirect to saml system -> redirect to handler -> redirect to Home

在SameSite设置为Strict的情况下,如果我的网站页面之间存在所有cookie,我如何重定向用户?

我必须将SameSite=Strict更改为SameSite=Lax。它仍然安全并且工作正常

SameSite限制仅在用户跨越源/域(重定向或COR)时适用。你的帖子没有说用户是否来自或前往其他网站。请澄清这一点。我在问题中添加了一个流程。问题可能是“重定向到处理程序”(未发送cookies)上的错误。来自SAML提供程序的重定向步骤导致中断,因为严格模式SameSite cookies未在重定向中发送。唯一的修复方法是将cookie更改为Lax(如果使用GET重定向)或None(如果使用POST重定向)。