仅 1 个用户拒绝访问本地 Intranet 页面
Posted
技术标签:
【中文标题】仅 1 个用户拒绝访问本地 Intranet 页面【英文标题】:access denied to local intranet page for only 1 user 【发布时间】:2012-04-09 15:06:33 【问题描述】:我们有一个由 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 站点都是 Intranet 站点。如果您转到 Internet 选项 -> 本地 Intranet -> 站点 -> 高级,则两个站点都在列表中。
在这一行:xmlhttp.open("GET","http://intranet.MySite.vmv/IS/GetUsername.aspx",false);
发生 javascript 错误并显示消息“错误:访问被拒绝。”
如果我在浏览器 url 中键入相同的 .NET 页面...它加载得很好,并显示她的用户名。
这一切令人困惑的是,我们的政策更新(每次登录时推出)设置了所有这些设置。我已经验证上述所有设置在我的浏览器上与在此用户上的设置相同。我们都在同一个域内。
任何其他可能导致此问题的设置的想法?
谢谢!
编辑
这里是 firebug 的结果……似乎没什么帮助,只是显示我们已经知道的。
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
【问题讨论】:
您可以使用 Fiddle 或 FireBug 查看实际的网络调用吗? 您使用的是 Internet Explorer,对吗? 这个错误是因为浏览器不允许跨域访问。无论您设置什么设置以允许跨域访问,都无法在该计算机上运行。 我会看看我能不能得到 Firebug,然后发布一个更新。我们都在使用 IE8,没错。 请看en.wikipedia.org/wiki/Same_origin_policy 【参考方案1】:嗯...问题似乎出在 IE7 上。不知何故,这个用户的版本没有与其他人一起升级。一旦我们将她升级到 IE8,它就会按预期工作。
【讨论】:
以上是关于仅 1 个用户拒绝访问本地 Intranet 页面的主要内容,如果未能解决你的问题,请参考以下文章
从服务器检索数据到本地返回 SQLSTATE[42000]:语法错误或访问冲突:1142 SELECT 命令拒绝用户