我们有一个来自Apache服务器的PHP站点。
我们有一个由windows服务器托管的.NET站点。
两者都是内部的,也在我们的领域内。
当用户访问PHP站点时,它会检查您的用户名是否已被占用。如果不是,它会将ajax GET回发回.NET "GetUsername.aspx“页面。GetUsername.aspx页面只输出Request.ServerVariables("LOGON_USER")
.NET站点要求在IE中启用windows身份验证。我们所有的用户都使用IE8。
为了使我们的PHP站点能够从.NET站点请求数据,必须启用“跨域访问数据”设置.而且确实如此。
为了使我们的.NET站点获得您的用户名,必须启用“启用集成Windows身份验证”。而且确实如此。
.NET站点和PHP站点都是内部网站点。如果您转到因特网选项-> -> Sites -> Advanced,则这两个站点都在列表中。
在这一行:xmlhttp.open("GET","http://intranet.MySite.vmv/IS/GetUsername.aspx",false);
一个javascript错误与消息" error : Access是拒绝“一起出现。
如果我在浏览器url中输入相同的.NET页面.它加载得很好,并显示了她的用户名。
令人困惑的是,我们的策略更新(每次登录时推出)设置了所有这些设置。我已经在我的浏览器上验证了上述所有设置与这些用户上的设置相同。我们都在同一领域内。
还有其他可能导致这种情况的想法吗?
谢谢!
编辑
这是火虫的结果..。似乎不是很有帮助,只是向我展示我们已经知道的。
http://intranet.MyCompany.vmv/IS/GetUsername.aspx
401 Unauthorized
20ms
login (line 103)
HeadersResponseHTML
Response Headers
Content-Length 1656
Content-Type text/html
Date Mon, 09 Apr 2012 16:15:33 GMT
Server Microsoft-IIS/6.0
WWW-Authenticate Negotiate NTLM
X-Powered-By ASP.NET
Request Headers
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Host intranet.MyCompany.vmv
Origin http://192.168.1.2:10078
Referer http://192.168.1.2:10078/login
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1发布于 2012-04-09 16:46:39
好吧..。问题似乎与IE7有关。不知怎么的,这个用户的版本没有和其他人一起升级。一旦我们把她升级到IE8,它就像预期的那样工作了。
https://stackoverflow.com/questions/10075241
复制相似问题