【发布时间】:2020-06-21 18:12:02
【问题描述】:
我有一个大问题。我正在使用处理程序来处理 saml 响应。在处理程序中,我正在检查一切是否正常,然后我正在使用 cookie 登录用户。
context.Response.Cookies.Add(cookie);
在此之后我正在重定向:
context.Response.Redirect("~/", false);
重定向后用户未登录(我必须刷新页面并且他已登录),因为未发送 cookie。设置为 SameSite=Strict。
此外,在 global.asax 中,我正在检查用户是否与实际浏览器有活动会话,并且由于没有 sessionID == no cookies => 注销用户,它无法正常工作。 流程是这样的:
Go to login page -> redirect to saml system -> redirect to handler -> redirect to Home
如何在 SameSite 设置为 Strict 的网站上的页面之间使用所有 cookie 重定向用户?
【问题讨论】:
-
SameSite 限制仅适用于用户跨越源/域(重定向或 CORS)时。您的帖子没有说明用户是否来自或前往其他网站。请澄清这一点。
-
我在我的问题中添加了一个流程。可能问题在于“重定向到处理程序”(未发送 cookie)
-
redirect-from-SAML-provider 步骤导致中断,因为在重定向中未发送严格模式 SameSite cookie。唯一的解决方法是将 your cookie 更改为 Lax(如果使用 GET 重定向)或 None(如果使用 POST 重定向)。
标签: c# cookies httphandler samesite