2

我们有一个由 Apache 服务器托管的 PHP 站点。

我们有一个从 Windows 服务器托管的 .NET 站点。

两者都是内部的,并且在我们的域内。

当用户访问 PHP 站点时,它会检查您的用户名是否已被会话。如果没有,它会向 .NET " " 页面执行 ajaxGET回发。GetUsername.aspxGetUsername.aspx页面只是输出Request.ServerVariables("LOGON_USER")

.NET 站点要求在 IE 中启用 Windows 身份验证。我们所有的用户都使用 IE8。

为了让我们的 PHP 站点从 .NET 站点请求数据,必须启用“跨域访问数据”设置......确实如此。

为了让我们的 .NET 站点获得您的用户名,必须启用“启用集成 Windows 身份验证”......而且确实如此。

.NET 站点和 PHP 站点都是 Intranet 站点。如果您转到 Internet 选项 -> 本地 Intranet -> 站点 -> 高级,则两个站点都在列表中。

在这一行:xmlhttp.open("GET","http://intranet.MySite.vmv/IS/GetUsername.aspx",false);

出现消息“错误:访问被拒绝”的 javascript 错误。

如果我在浏览器 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
4

1 回答 1

1

嗯......问题似乎与IE7有关。不知何故,这个用户的版本没有与其他人一起升级。一旦我们将她升级到 IE8,它就会按预期工作。

于 2012-04-09T16:46:39.827 回答