![为什么特定 Mac 上的任何浏览器都不显示特定站点的基本身份验证登录?](https://linux22.com/image/1218346/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%89%B9%E5%AE%9A%20Mac%20%E4%B8%8A%E7%9A%84%E4%BB%BB%E4%BD%95%E6%B5%8F%E8%A7%88%E5%99%A8%E9%83%BD%E4%B8%8D%E6%98%BE%E7%A4%BA%E7%89%B9%E5%AE%9A%E7%AB%99%E7%82%B9%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E7%99%BB%E5%BD%95%EF%BC%9F.png)
我一直在帮助我的邻居解决他新买的 Apple iMac 电脑最近出现的问题。他可以正常浏览互联网,但当他尝试访问某个网站时(http://mbeweb.mbe.com),浏览器只会报告‘正在加载’,直到放弃并超时。
该网站应该显示 HTTP 基本身份验证登录提示,但在该 iMac 上的任何浏览器中均未显示。其他需要基本身份验证的网站可以正常工作。
无论他在 Mac OS X 上使用哪种浏览器(Safari 4、Firefox 3.5、Opera 和 iCab),都会发生这种情况,而且似乎只有这个网站会出现这种情况(显然我们还没有尝试过互联网上所有可用的网站)。从他家的同一个网络,他可以用 Windows 笔记本电脑访问该网站,我把我的 MacBook Pro 带过来,并验证我也可以连接(我的 iPhone 也可以)。
更奇怪的是,如果他在 iMac 上启动 VMware Fusion 并尝试在 Windows XP 下使用 IE 或 Firefox 连接到该网站,他得到的结果是完全相同的。其他网站在 Windows 上可以正常运行。
对于新用户来说也会发生这种情况。
从终端,我可以通过 telnet 连接到该站点(telnet mbeweb.mbe.com 80),并且连接正常,我可以发出“GET /index.html HTTP/1.1”,并且 Web 服务器会以有效的 HTML 和 401.2 未授权的 HTTP 错误进行响应。
我尝试过清除他的缓存(dscacheutil -flushcache)、重新启动 iMac、清除浏览器缓存、cookie、存储的登录信息等。问题似乎只局限于这台 iMac。
他说以前它工作得很好。我们联系了网站管理员,他们解释了他们最近所做的一些更改(切换到 SharePoint,现在所有旧链接都重定向到它),但确认他们能够从 Windows 和 Mac 计算机访问该网站(尽管他们确实注意到他们在使用在 VM 下运行的 Windows 时遇到了困难)。
我准备备份他的机器并重新对其进行映像处理,但也许有人有我还没有尝试过的更好的建议?
答案1
当我直接通过 telnet 连接到该站点的 IIS 服务器时出现 401 错误(显然 telnet 不知道如何处理身份验证)
当然可以,如果控制 telnet 会话的人知道如何做的话。;-)
您的 telnet 命令应该屈服就像是:
HTTP/1.1 401 未授权 内容长度:1656 内容类型:text/html 服务器:Microsoft-IIS/6.0 WWW-身份验证:基本领域=“mbe.com” X-Powered-By:ASP.NET MicrosoftSharePoint团队服务:12.0.0.6318 日期:2009 年 10 月 12 日星期一 13:35:38 GMT
标WWW-Authenticate
头告诉浏览器显示身份验证对话框,例如在 Firefox 中将显示以下内容:
需要身份验证
正在请求用户名和密码http://mbeweb.mbe.com该网站写着:“mbe.com”。
您也可以使用 telnet 进行测试。首先,Base64 编码字符串“username:password”(当然,使用实际的用户名和密码;dXNlcm5hbWU6cGFzc3dvcmQ=
对于此示例),然后:
telnet mbeweb.mbe.com 80 获取/HTTP/1.1 主机:mbeweb.mbe.com 授权:Basic dXNlcm5hbWU6cGFzc3dvcmQ= [空行]
因此,问题归结为:为什么你的邻居在那台电脑上没有收到任何身份验证对话框。
你的邻居在其他网站上是否收到登录提示?(是的,在评论的某处。)你能否确认在你邻居的 iMac 上,你的 telnet 命令确实产生了响应
WWW-Authenticate
?输出的内容是什么实时 HTTP 标头Firefox 中的插件会给你什么?(或者,当使用 Firebug 插件时:网络选项卡。或者在 Safari 或 Chrome 中:WebKit 的资源窗格?)
你的邻居没有使用某些 VPN,对吗?
是否
mbeweb.mbe.com
解析为 IP 地址 63.145.223.67?
答案2
我也无法浏览该网站(Safari 4.0.3)
这错误来自 Microsoft 设备上的 Internet 信息服务。这可能是因为服务器不接受匿名身份验证,并且您使用的浏览器不同意身份验证方法。
您也可能正在使用无法维持集成身份验证的代理,并且服务器继续拒绝访问。
答案3
尝试在 Safari 4 中欺骗另一个浏览器。如果您在屏幕上看不到它,请在“偏好设置”中启用“开发”菜单,然后从“开发”菜单中选择“用户代理”并尝试其中一个 Internet Explorer 选项(或任何其他选项,直到您获得一个可行的选项)。
答案4
这是我在 Windows 上得到的结果(请忽略 LastPass 的内容):
该网站可能正在使用基本访问认证,Safari 应该支持。我不知道 Safari,但可能在某个地方有一个参数。最糟糕的情况是,您可以卸载并重新安装 Safari,或者将所有选项重置为默认设置。