我有一台运行 ASP.Net 应用程序的 IIS 7.5 服务器,由于某种原因,它不会向 IE10 发送 ASP.Net 身份验证 cookie。只有当请求来自 IE10 浏览器并且仅通过网络时才会发生这种情况(即,从 Web 服务器本身浏览时不会发生这种情况)。所有其他浏览器(Firefox、Chrome、Safari、IE9)都可以正常工作。
问题显然出在浏览器识别上,因为当我将 IE10 切换到 IE9 模式时,cookie 确实到达了。另一方面,当我强制其他浏览器(例如 Firefox)使用代理覆盖插件模拟 IE10 时,cookie 不会发送。
无论协议是什么(http 或者 https)以及服务器的主机名是什么(IP 地址也一样),都会发生这种情况。
到目前为止,我排除了服务器应用程序代码中的问题,因为我在另一个 IIS 上进行了类似的设置,并且应用程序完全相同,但没有出现症状,因此我认为可能是 IIS 配置中的问题。通过比较两个系统之间的 IIS 配置,我只看到以下可能相关的差异:
<system.web>
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1)" />
<add alias="downlevel" userAgent="Generic Downlevel" />
</clientTarget>
</system.web>
我想尝试更改这些设置,但在 IIS 管理器 UI 中找不到这对应的内容。
答案1
(将评论转换为答案)
我在 IE10 和我的 ASP.Net 应用程序上遇到了一个问题,结果发现是 ASP.Net 中的一个错误,但我的症状与 cookie 无关。这让我抓狂,因为它只会发生在其中一台服务器上。我遇到了本文由 Scott Hanselman 编写,并将修补程序应用于服务器。此修补程序现已作为常规更新发布。这有点牵强,但也许您应该尝试在服务器上运行更新。