这是我的问题的快速版本:
当cookie用于其他服务器(在这种情况下是Exchange邮件服务器)时,是否可以以某种方式将cookie设置到客户端的浏览器中?在这种情况下,尝试设置cookie的服务器位于"intranet.myschool.edu",交换服务器位于"owa_server.myschool.edu".
这是完整的问题:
我有一个PHP脚本,它使用cURL对启用了基于表单的身份验证的Exchange服务器进行HTTP POST.
当我成功进行HTTP POST(包括发布网址中的用户/传递),Exchange Server(或更具体地说,https://my.school.edu/exchweb/bin/auth/owaauth.dll文件)输出cookies.具体来说,它输出"sessionid"和"cadata"id.
将这些cookie ID写入服务器上的文本文件后,cURL/PHP可以引用它,然后从Exchange/OWA服务器请求数据(通过webdav等).
那部分有效.我想解决的问题是现在将cookie ID传递给客户端浏览器,以便他们可以使用这些cookie ID自动登录到自己的OWA帐户.
本质上,我希望我们的用户使用他们的Active Directory ID登录我们的Intranet,并查看他们最近的电子邮件的快照.然后,如果他们需要,我会给他们一个小的链接切换到完整的OWA Web应用程序.当这种切换发生时,我不希望他们必须手动登录OWA.由于他们已经在Intranet的前面提交了他们的Active Directory用户名和密码,我希望他们能够自动登录到OWA.
我应该注意,由于我们混合使用Mac OS,Windows和Linux,因此无法使用Windows身份验证尝试进行单点登录.
我以为我能够做一个"setcookie"并分配cURL获得的cookie ID并将它们放入客户端浏览器中.
这不可能吗?是不可能以这种方式"欺骗"Exchange/OWA(或任何其他网站).我有cURL捕获的合法cookie ID.有没有办法将这些传递给另一台计算机上的客户端浏览器?
在最糟糕的情况下,使用Javascript只是自动将用户名和密码粘贴到OWA登录页面是我唯一的希望吗?有没有人对如何避免我的Exchange/OWA双重登录问题有任何其他想法?
感谢您提供的任何帮助!
来自RFC 2965(NB HDN ="主机域名")
主机A的名称域匹配主机B的if
* their host name strings string-compare equal; or * A is a HDN string and has the form NB, where N is a non-empty name string, B has the form .B', and B' is a HDN string. (So, x.y.com domain-matches .Y.com but not Y.com.)请注意,域匹配不是可交换的操作:abccom
domain-matches .c.com,但不是相反的.
所以使用.myschool.edu
域应该工作.NB领先.是必不可少的