2012-04-09 87 views
2

我们有一个PHP站点由Apache服务器托管。只有1个用户拒绝访问本地内部网页

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

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

当用户访问PHP站点时,它会检查您的用户名是否已被会话。如果没有,它会执行一个回发到.NET“GetUsername.aspx”页面的ajax GETGetUsername.aspx页面简单输出Request.ServerVariables("LOGON_USER")

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

为了让我们的PHP站点从.NET站点请求数据,必须启用“访问跨域数据”设置......并且它是。

为了让我们的.NET站点获得您的用户名,“启用集成Windows身份验证”必须是可以纳入的......而且是。

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

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

与消息JavaScript错误occurrs “错误:访问被拒绝。”

如果我在浏览器网址中键入相同的.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 
+1

您可以使用Fiddle或FireBug查看实际的网络呼叫吗? – kevingreen 2012-04-09 15:17:25

+1

您使用的是Internet Explorer,对不对? – jrummell 2012-04-09 15:21:06

+1

错误是因为浏览器不允许跨域访问。无论您设置为允许跨域访问的设置都不适用于该机器。 – AndrewR 2012-04-09 15:26:52

回答

1

嗯......这个问题似乎是与IE7。不知何故,这个用户的版本并未与其他人一起升级。一旦我们升级到IE8,它就像预期的那样工作。