【发布时间】:2018-12-11 13:37:21
【问题描述】:
我在一台服务器上有一个身份服务器 (v4),在另一台服务器和域上有一个 Web 应用程序。我只需要 Windows 身份验证,一切都可以通过重定向正常工作。但是,我注意到如果 cookie 尚未过期,则静默登录有效。
如果 cookie 已过期,则当前需要重定向,这可以正常工作。然而不幸的是,这意味着如果用户没有在当前屏幕上保存数据,除非我实现缓存机制,否则他们将丢失它。相反,我想设置一个隐藏的 iframe,它只是导航到 Identity Server,如果用户在公司基础架构内(他们总是会这样),则自动登录。
经过数小时的调试,我发现虽然从 iFrame 正确发送了 cookie,但任何 SET 似乎都不起作用 - 它们在 chrome 调试器中作为响应 cookie,但不会在下一次重定向时发送作为请求 cookie,我不知道为什么。
回应:
Cookie 选项:SameSite Lax、HTTP true、Secure true、Path /
标题:
Content-Security-Policy: default-src 'self';对象源“无”;框架源本地主机:44388;框架祖先“自我” https://localhost:44388/;沙盒允许表单允许同源 允许脚本; base-uri 'self';
持久验证:真
Pragma:无缓存
推荐人政策:无推荐人
WWW-Authenticate:协商 oRswGaADCgEAoxIEEAEAAABJ+0p/zH0aeAAAAAA=
X-Content-Security-Policy: default-src 'self';对象源“无”;帧源 **本地主机:44388;框架祖先“自我”https://localhost:44388/;沙盒允许表单允许同源允许脚本; base-uri 'self';
X-Content-Type-Options:nosniff
X-Frame-Options:ALLOW-FROM https://localhost:44388/
【问题讨论】:
-
尝试设置 options.Cookie.SameSite = SameSiteMode.None;
标签: cookies iframe asp.net-core identityserver4 c3.js