我有两个 ASP.NET 网站:new.somecompany.com 和 legacy.somecompany.com。
“新建”是使用 Windows 身份验证的 Intranet 应用程序。“遗留”既是互联网又是内联网;它使用表单身份验证。
在“新”网站中,我的老板希望能够单击链接并打开浏览器窗口,以访问“旧”网站上已登录的网页。(他希望在不更改旧站点的情况下完成此操作。)
我有一个适用于 Chrome(版本 39.0.2171.95 m)和 Firefox(版本 33.1.1)的解决方案,但不适用于 Internet Explorer(版本 11.0.9600.17501)。在高层次上,解决方案是:
- “新”上的控制器使用 HttpWebRequest 使用存储的凭据登录“旧版”。
- 控制器从“legacy”响应中获取“ASP.Net_SessionId”cookie,并使用它在浏览器中为域“.somecompany.com”设置“ASP.Net_SessionId”cookie。
- 在浏览器中,转到
https://legacy.somecompany.com/somepage.aspx
。
对于 Chrome 和 Firefox,将https://legacy.somecompany.com/somepage.aspx
根据用于登录的存储凭据显示。在 IE 11 中,会显示登录页面。
我使用 Microsoft 的消息分析器工具来查看来回传递的内容。使用 Chrome,我看到在 somepage.aspx 的 HTTP 请求中发送了 ASP.Net_SessionId cookie。使用 IE 11,cookie 不会被发送,我会重定向到登录页面作为响应。
我可以做些什么来让它在 IE 11 中工作?