【问题标题】:ASP.Net_SessionId cookie across subdomains using IE11使用 IE11 跨子域的 ASP.Net_SessionId cookie
【发布时间】:2015-01-13 20:59:12
【问题描述】:

我有两个 ASP.NET 网站:new.somecompany.com 和 legacy.somecompany.com。

“New”是一个使用 Windows 身份验证的 Intranet 应用程序。 “遗留”既是互联网又是内联网;它使用表单身份验证。

在“新”网站中,我的老板希望能够单击链接并打开浏览器窗口,以访问“旧”网站上已登录的网页。 (他希望在不更改旧网站的情况下完成此操作。)

我有一个适用于 Chrome(版本 39.0.2171.95 m)和 Firefox(版本 33.1.1)的解决方案,但不适用于 Internet Explorer(版本 11.0.9600.17501)。概括地说,解决方案是:

  1. “新”上的控制器使用 HttpWebRequest 使用存储的凭据登录“旧版”。
  2. 控制器从“旧”响应中获取“ASP.Net_SessionId”cookie,并使用它来 在浏览器中为域“.somecompany.com”设置“ASP.Net_SessionId”cookie。
  3. 从浏览器转到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 中工作?

【问题讨论】:

    标签: asp.net internet-explorer cookies asp.net-session


    【解决方案1】:

    我也遇到过类似的情况。最近,我开发了一个 Web 应用程序,我想在 Windows Authenticate and Anonymous 站点中编写一次代码并部署(在 iFrame 中)。

    用户必须通过 Active Director 登录或登录到外部站点。

    我就是这样处理的。在这两种情况下,iFrame 站点都在同一个域上运行(如您所示)site1.company.com 或 site2.company.com

    我就是这样处理的。

    1. 站点 A:用户登录,加密用户名并将其存储在 cookie 中。 (我使用带有私钥的 AES 加密)。

    2. 站点 B:读取 cookie,解密用户 ID,并将用户登录到站点。

    cookie 中还有一个加密值(日期时间),它会检查该值是否过期 3 秒。

    【讨论】:

    • 有趣的答案,但它似乎需要对我给出的当前边界之外的旧站点进行更改。如果其他解决方案在技术上是不可能的,我会记住这一点。
    【解决方案2】:

    这个blog 给了我答案。特别是这一段:

    问题 #3 在 Windows Vista 及更高版本上发生,当您配置 一个子域在保护模式之外运行(例如,把它放在 Trusted Zone) 和另一个在 Protected 内部运行的相关子域 模式(例如,将其留在 Internet 区域)。这并不常见, 但如果您将 login.live.com 放在 受信任区域,但未将 mail.live.com 放入受信任区域。这 这个模糊问题的根本原因是保护模式和 非保护模式不共享 cookie,因此 cookie 由 保护模式之外的站点对正在运行的站点不可见 在保护模式内,反之亦然。

    在我的例子中,“new.somecompany.com”在 IE 设置的本地 Intranet 区域中,但“legacy.somecompany.com”不在。将“legacy.somecompany.com”添加到 Intranet 区域后,我的代码在 IE 11 中运行。

    【讨论】:

      猜你喜欢
      • 2019-12-19
      • 1970-01-01
      • 2011-10-02
      • 2016-02-08
      • 2011-11-28
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多