我想使用域:aaaa.com 为域:cccc.com 的网站提供登录表单。
注意,我可以完全控制 cccc.com 的服务器,并在 cccc.com 的服务器上设置 CORS。我基本上也完全控制了 aaaa.com 的服务器。
我正在使用 jquery 的 $.ajax 将 POST 发送到 cccc.com asp.net mvc 3 服务器。看起来我得到了正确的响应,并且在响应中看到了 ASP.NET_SessionId 和 .ASPXAUTH cookie。当我在 JavaScript 中得到正确的响应且没有登录错误时,我想使用 window.location 重定向到 cccc.com/Home/Index。到目前为止一切似乎都在进行。身份验证、获得正确的响应等。但是,当 javascript 重定向时,cccc.com 仍然希望我再次登录。为什么会发生这种情况?
是不是因为认证cookies属于aaa.com?我该如何解决这个问题?
谢谢
最佳答案
是的,身份验证 cookie 将属于其他站点,并且不会共享。
如果您有 cccc.com 的子域,而不是完全独立的域,那么设置域范围的 cookie 就可以了。
事实上,您必须在登录、注销以及任何其他修改 cookie 存储方式的身份验证方法时复制 cookie。如果您位于不同的服务器上,除非您有 session 状态服务器,否则您也会失去进行 session 的能力。
您可以在 POST 登录完成后尝试使用 javascript 复制身份验证 cookie。
关于c# - 使用 "cross-domain"来登录另一个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902230/