为什么特定 Mac 上的任何浏览器都不显示特定站点的基本身份验证登录?

为什么特定 Mac 上的任何浏览器都不显示特定站点的基本身份验证登录?

我一直在帮助我的邻居解决他新买的 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,或者将所有选项重置为默认设置。

相关内容