我有一个asp.net应用程序。它有一个需要身份验证的页面。经过身份验证的用户可以查看该页面,因为他/她已通过身份验证。该页面对WCF服务进行jQuery Ajax调用。 WCF服务检查用户是否通过HttpContext进行了身份验证。我有一个使用WinXP和IE8的用户。此用户可以对页面进行身份验证,但是当从页面到wb服务进行Ajax调用时,用户会在页面上收到我的“未经身份验证的会话”消息,该消息由服务生成并显示在页面上。当我使用相同的操作系统/浏览器组合时,页面和服务正常工作,如预期的那样;没有错误。
此用户的IE设置中的哪个选项会导致此行为?
答案 0 :(得分:0)
事实证明,我只是愚蠢而且违反了“同源原则”。我的服务是在mydomain.com,我的用户可能在www.mydomain.com的页面上。该服务将失败,因为域名不完全匹配。因此,我在服务器上设置了一些重写规则,这样无论浏览器请求的域的哪种变体,它都会重新写入www.mydomain.com。然后,我只是将服务调用设置为该域(或者在这种情况下,只使用window.location.hostname),并解决了所有问题。大“D'oh”时刻。