自定义 HTML 窗体

发布时间: 2009年11月

应用到: Forefront Threat Management Gateway (TMG)

Forefront TMG 为访问已发布 Web 服务器的客户端提供了多种可应用于 Web 发布规则的身份验证方法。在选择基于窗体的身份验证时,用户将被定向到 HTML 窗体,以提供身份验证凭据。Forefront TMG 提供了用于基于窗体的身份验证的默认窗体集。可对这些窗体集进行自定义,以便为不同的已发布网站的登录窗体提供不同外观。

本主题概述了 Forefront TMG 窗体集,还介绍了如何自定义这些窗体集。

HTML 窗体概述

下面几部分将介绍 Forefront TMG 中包括的 HTML 窗体集以及 Forefront TMG 窗体集目录的结构:

  • Forefront TMG 窗体集

  • 窗体集目录

Forefront TMG 窗体集

Forefront TMG 中包括位于以下文件夹中的预配置窗体集:

  • ISA - 包括 Web 侦听器或 Forefront TMG Web 发布规则中指定的、基于窗体的身份验证需要的所有 HTML 窗体。

  • Exchange - 包括 Microsoft Exchange Web 客户端访问基于窗体的身份验证可能需要的所有 HTML 窗体。

Forefront TMG 支持三类 HTML 窗体,并将其整理到窗体集中:

  • HTML - 用于标准浏览器。

  • cHTML - 用于支持 cHTML 的浏览器,如 i 模式移动设备。

  • xHTML - 用于支持 xhtml-mp 的浏览器,如 Microsoft Windows Mobile® 和其他移动设备。

备注

Forefront TMG 根据移动客户端提供的用户代理头确定要提供的窗体类型。

每个窗体集中包括客户端进行基于窗体的身份验证时可能需要的所有 HTML 窗体,如登录窗体、注销窗体和 SecurID 窗体。默认情况下,当您使用基于 HTML 窗体的身份验证作为选定身份验证方法来创建新 Web 侦听器时,会自动选择窗体集。根据为 Web 侦听器指定的身份验证方法,Forefront TMG 会提供以下类型的登录窗体之一:

  • 密码窗体 - 用户在窗体中输入用户名和密码。Active Directory、轻型目录访问协议 (LDAP) 和远程身份验证拨入用户服务 (RADIUS) 凭据验证需要提供这些凭据。

  • 通行码窗体 - 用户在窗体中输入用户名和通行码。SecurID 和 RADIUS 一次性密码验证需要这些凭据。

  • 通行码/密码窗体 - 用户输入用户名和通行码以及用户名和密码。用户名和通行码用于借助 SecurID 或 RADIUS 一次性密码身份验证方法对 Forefront TMG 进行身份验证,而用户名和密码用于进行委派。当管理员选择在窗体中收集其他凭据时,会使用此窗体。

创建 Web 侦听器和 Web 发布规则后,可以指定应使用不同窗体集。此外,Web 发布规则的 HTML 窗体属性可以替代其 Web 侦听器的窗体集。可根据以下各项确定窗体集:

  • Web 侦听器中指定的窗体集。

  • Web 发布规则中指定的窗体集。

有关如何创建窗体集的信息,请参阅创建自定义窗体集。

窗体集目录

\%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates 目录中包含 Forefront TMG 附带的 ISAExchange 窗体目录。这些目录的直接子目录包含各个窗体集目录。

每个窗体集目录都包括整个 HTML 窗体集(.htm 文件)。当 Forefront TMG 显示 HTML 窗体时,它会将 .htm 文件中的占位符替换为与用户浏览器的语言设置对应的 strings.txt 文件中的字符串,该文件位于语言 (nls) 目录的语言文件夹中,如下所示。

ISA 目录

创建 Web 发布或 Microsoft SharePoint 发布规则时,将自动使用 ISA 目录中的窗体集。

Exchange 目录

使用新建 Exchange 发布规则向导创建 Web 客户端邮件访问发布规则时,会自动为该规则选择 Exchange HTML 窗体集。Exchange 文件夹中只包含 HTML 窗体集。若要将 cHTML 或 XHTML 窗体集用于 Exchange Web 客户端访问,必须创建 Exchange\cHTML 或 Exchange\xHTML 目录,然后将 Exchange\HTML 的内容复制到这些目录。

备注

若要使用 Exchange 发布规则向导,请在“服务器管理”的控制台树中单击“防火墙策略”,然后在“任务”选项卡上单击“发布 Exchange Web 客户端访问”

语言目录

语言目录 nls 包括单个子目录,其中具有一个用于每种受支持语言的 strings.txt 文件。当 Forefront TMG 显示 HTML 窗体时,它会将 .htm 文件中的占位符替换为 strings.txt 文件中的字符串,该文件对应于与客户端浏览器发送的接受语言头匹配的语言。

当 Forefront TMG 无法匹配客户端浏览器发送的接受语言头时,Forefront TMG 将使用默认窗体集目录中的 strings.txt 文件。请注意,strings.txt 是该文件的英文版本。

窗体集目录权限

安装 Forefront TMG 时,会自动设置对窗体目录的权限。绝不能修改以下权限:

  • 完全控制 - 适用于本地 Administrators 组的成员。

  • 只读 - 适用于网络服务帐户,这样在使用网络服务帐户运行时,Forefront TMG 可以读取此目录的内容。

为了保留从父文件夹中继承的权限,建议您将文件复制到窗体集目录,而不是将其移至该目录。

自定义窗体集

有些情况下,您可能希望为一些已发布网站的窗体提供不同外观。每个此类外观均由一个窗体集来定义。您可以修改现有窗体集,或创建自己的自定义窗体集。

下列各部分介绍:

  • 自定义文本字符串

  • 使用自定义图形

  • 创建自定义窗体集

备注

  • 自定义窗体时,必须保留所有原始的窗体字段以及 Forefront TMG 用隐藏字段替换的所有占位符。.htm 文件中的所有输入标记 <input …> 和窗体标记 <form…> 都必须保持不变,否则窗体将无法工作。同时,不能更改 strings.txt 文件的格式。

  • 在升级过程中,Exchange 和 ISA 文件夹将被覆盖。如果自定义 HTML 窗体,请务必在应用任何修补程序、Service Pack 或升级之前,先创建更新文件的备份。

  • 如果您正在运行 Forefront TMG Enterprise Edition,则应对每个 Forefront TMG 阵列成员中的 Forefront TMG 窗体集进行更改。

  • 为使更改生效,必须重新启动防火墙服务。

  • 匿名用户可以访问窗体自定义目录中的所有文件;因此,这些文件不应包含任何敏感信息。

自定义文本字符串

当 Forefront TMG 显示 HTML 窗体时,它会将 .htm 文件中的占位符替换为 strings.txt 文件中的字符串,该文件与在客户端浏览器的语言设置或在 Web 侦听器中指定的语言相对应。进行文本字符串自定义的方法是在 strings.txt 文件中修改与 .htm 文件中的占位符对应的字符串。

备注

  • 在自定义 strings.txt 文件的内容之前,建议先对要修改的 strings.txt 文件进行备份。

  • 为了符合 HTML 语法,必须对您修改或添加的任何字符串进行正确编码。字符串中不应包含 < 字符,应将其替换为 &lt;。此外,要包括引号,必须使用单引号,而不是双引号。

下面的示例介绍如何将标准登录页中的用户名输入的文本字符串由 **"Domain\user name:"**更改为 "Alias:"

更改标准登录页中用户名输入的文本

  1. 在 nls 目录的相应语言文件夹中打开 strings.txt 文件。

  2. 查找与占位符 @@L_username_ text 匹配的字符串。该字符串在 strings.txt 文件中显示为:L_UserName_Text="Domain\User name:".

  3. 将该文本字符串更改为 L_UserName_Text="Alias:"

  4. 保存 strings.txt 文件。生成 HTML 窗体时,将在该窗体中显示 @@L_username_text 的新值。

  5. 重新启动 Microsoft 防火墙服务,以使更改生效。

除了修改文本字符串外,还可以向窗体中添加新字符串。下面的示例演示如何向窗体中添加字符串。

向窗体中添加字符串

  1. 打开 .htm 文件。

  2. 为该字符串添加一个占位符并保存该文件。该占位符必须采用 @@L_stringname 的格式。该占位符不能包含空格。

  3. 保存 .htm 文件。

  4. 向 strings.txt 文件中添加相应字符串。必须以 L_stringname="string text" 格式写入该字符串。

  5. 保存 strings.txt 文件。

  6. 重新启动防火墙服务,以使更改生效。生成 HTML 窗体时,将在该窗体中显示 @@L_stringname 的值。

安全注意事项

如果将 strings.txt 文件提供给第三方进行修改,请验证未在文件中添加非文本内容,因为添加此类内容可能会为网络攻击提供途径。

使用自定义图形

您可以替换特定窗体中的某一图形或以全局方式替换所有窗体中的某一图形,这样引用该图形的所有 .htm 文件中都会显示更改。

Forefront TMG 在 HTML 窗体中使用的图形都位于默认窗体目录(ISA 和 Exchange)中。用于引用图形的 URL 的书写方式如下所示,其中 <filename> 是包含扩展名的文件名:/cookieauth.dll?GetPic?formdir=@@FORMDIR&image=<filename>。

下面的示例介绍如何将徽标图形 <lgntop.gif> 替换为自己的公司徽标 <logo.gif>;该示例介绍如何修改 HTML 目录中的窗体。

替换徽标图形

  1. 将 logo.gif 复制到 \%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates\ISA\HTML 窗体集目录。

  2. 打开包含要替换的图形的 .htm 文件。

  3. 修改图形的 URL,同时替换现有文件名 <lgntop.gif>。修改后的 URL 为:/cookieauth.dll?GetPic?formdir=@@FORMDIR&image=logo.gif。

  4. 保存文件。

  5. 重新启动防火墙服务,以使更改生效。生成窗体时,将在该窗体中显示 logo.gif。

或者,若要以全局方式替换所有窗体中的某一图形,请使用您要替换的图形的文件名将您的图形复制到窗体目录中。

创建自定义窗体集

您可以提供自定义窗体,以便为窗体指定除 Forefront TMG 提供的默认 ISA 或 Exchange 目录之外的其他目录。例如,请考虑这样一种情况,您要为两个不同的公司发布 Web 客户端访问,并且希望每个公司在页面中有自己的徽标以及其他自定义文本字符串。

以下过程介绍如何为此示例提供自定义窗体。

提供自定义窗体

  1. 在 \CookieAuthTemplates\ 目录中创建一个新文件夹;例如,\%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates\Company1。

  2. 将 ISA 或 Exchange 文件夹的内容复制到您创建的新文件夹中。如果您只有标准浏览器,则只需复制 HTML 文件夹。

  3. 自定义备份目录中的窗体。对相应语言文件夹中的 strings.txt 文件进行任意文本更改,或替换任意图形文件。请勿更改任何 HTML 窗体元素,如 <FORM> 和 <INPUT>。

  4. 重新启动防火墙服务,以使更改生效。

  5. 若要将新窗体集应用于 Web 侦听器,请在 Web 侦听器的**“窗体”选项卡中提供目录名称。仅提供目录的名称,如 Company1,无需提供其完整路径。或者,若要将新窗体集应用于 Web 发布规则,请在该规则的“应用程序设置”选项卡中,启用“使用自定义 HTML 窗体”**复选框并提供目录名称。

  6. 为了确保仅以特定语言显示窗体,请在 Web 侦听器的**“窗体”选项卡中,在“使用此语言显示 HTML 窗体”下,选择该语言。例如,若要确保仅以英文显示窗体,则不必考虑客户端浏览器设置,请选择“英语 [en]”**。

  7. 对第二个公司 (Company2) 重复该过程。

  8. 单击“应用更改”栏中的**“应用”**以更新配置。

备注

如果您运行的是 Forefront TMG Enterprise Edition,则窗体目录必须出现在所有 Forefront TMG 阵列成员中。

语言设置

默认情况下,Forefront TMG 将使用语言文件夹(在客户端浏览器的“Internet 选项”的**“语言”**选项中指定)中的 strings.txt 文件来生成 HTML 窗体。可以通过在 Web 侦听器中指定语言来替代客户端语言设置。此外,如果 Forefront TMG 找不到与语言设置对应的 strings.txt 文件,则使用默认的 strings.txt 文件。

备注

默认目录中的 strings.txt 文件的语言为英文。可以更改默认 strings.txt 文件的语言,方法是将该文件替换为任何一个语言文件夹中的 strings.txt 文件。