« removeNode方法ASP导出Excel数据 »

访问默认 Web 站点时执行或不执行身份验证

问:在 Windows 2000 或 XP 上安装 IIS 后,我启动 Internet Explorer,并检查是否已经成功完成安装。为此,我使用 http://www.ajaxstu.com 访问默认 Web 站点,发现一切正常。但是,如果我键入 http://127.0.0.1,则提示我需要进行身份验证。为什么有时候要求我出示凭证,而有时则不要求?

答:这种操作方式是预料之中,而且必须处理 Internet Explorer 服务器的访问管理和默认 Web 站点的配置。配置默认 Web 站点是为了在没有 default.htm 或 default.asp 文件的情况下,调用文件 IISSTART.ASP。如果 IISStart.asp 认为您是在要求从本地 IP 地址进行访问,键入了 http://www.ajaxstu.com 或 http://127.0.0.1 当然是完全合格的,那么请求就会被如下所示重定向到 Localstart.asp:

<% Response.Redirect "localstart.asp" %>

这将导致 IIS 向 Internet Explorer 发送下列信息:

HTTP/1.1 302 Object moved
Server: Microsoft-IIS/5.0
Date: Thu, 09 Jan 2003 23:30:03 GMT
Location: localstart.asp
Connection: Keep-Alive
Content-Length: 135
Content-Type: text/html
Set-Cookie: ASPSESSIONIDGQQGQWNC=FOFJMOPCDFNCDALAEPMEGKNF; path=/
Cache-control: private

&lt;head&gt;&lt;title&gt;Object moved&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;&lt;h1&gt;Object Moved&lt;/h1&gt;This object may be found &lt;a
HREF="localstart.asp"&gt;here&lt;/a&gt;.&lt;/body&gt;

然后,Internet Explorer 按指令请求 localstart.asp。接下来所发生的操作,取决于您如何向默认 Web 站点发送请求。如果使用 http://www.ajaxstu.com,那么会假定您是以具有访问内容所需的足够权限的用户身份登录的。但是,如果键入 http://127.0.0.1,将会要求进行身份验证。

这似乎很让人感到困惑,因为默认 Web 站点启用了匿名验证和集成 Windows 身份验证两种方法。由于启用了匿名身份验证,因此默认情况下,每个用户都具有读取和执行权限,这样根本不会出现要求提供凭证的提示!如果仔细进行观察,您就会发现 localstart.asp 的配置与默认 Web 站点的其余项不同。它禁用了匿名身份验证,启用了基本身份验证和集成的 Windows 身份验证。

因此,要成功地运行 localstart.asp,您必须对服务器进行身份验证,而且验证的内容多余 IUSR 帐户。如果使用的是 Internet Explorer,而且 Internet Explorer 认为您请求的是企业内部网中的服务器,例如 http://research 或 http://betacode,那么验证自动进行。这时,Internet Explorer 将使用您登录计算机时所使用的凭证来帮助您登录 IIS。但是,如果 Internet Explorer 认为您是从 Internet 站点发出请求,那么为了安全起见,会要求您输入用户名和密码,而不会自动登录。这样可以防止怀有恶意的 Web 站点获取身份验证会话的网络通信,从而破译密码。

这也许不适合您所处的情形,因为您访问默认 Web 站点时使用的是 http://127.0.0.1,而 Internet Explorer 使用以下规则来判断站点是本地站点,还是非信任站点:“如果 URL 中存在句点(.),那么它不是本地站点”。因此,使用 http://www.ajaxstu.com 不会出现提示,而使用 http://127.0.0.1 则会出现提示。

您可以避免在使用 IP 地址或名称中包含句点的企业内部网服务器上出现这种提示,方法是,在 Internet Explorer 的“本地 Intranet”设置中,列出包含 IP 地址的服务器,或是列出包含句点的服务器名称。可以通过依次单击“工具”、“Internet 选项”、“本地 Intranet”、“站点”、“高级”来访问“本地 Intranet”设置部分。然后在“将该网站添加到区域中”输入 http://127.0.0.1 或其他相关站点的 URL。

原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。