Sun logo      上一页      目录      索引      下一页     

Sun ONE Portal Server, Secure Remote Access 6.2 管理员指南

第 5 章
Netlet

本章介绍如何使用 Netlet 在用户的远程桌面与内部网中正运行应用程序的服务器之间安全地运行应用程序。要配置 Netlet,请参阅第 11 章,“配置 Netlet”

本章包括以下主题:


Netlet 概述

Sun™ ONE Portal Server 软件用户可能希望以安全方式在其远程桌面上运行流行的或公司所特定的应用程序。通过在平台上设置Netlet,您能够提供对这些应用程序的安全访问。

Netlet 使用户可在不安全的网络上(如 Internet)安全地运行普通的 TCP/IP 服务。您可以运行 TCP/IP 应用程序(如 Telnet 和 SMTP)、HTTP 应用程序及任何固定端口应用程序。

若通过 Netlet 运行应用程序,须满足以下条件:

Netlet 组件

Netlet 使用的各种组件如图 5-1 所示。

图 5-1 Netlet 组件

本图列举了 Netlet 操作所涉及的各种组件。 有关所有实体的描述,请参阅图后的说明。

localhost 上的监听端口

这是 Netlet applet 在其上进行监听的客户机中的端口。客户机为 localhost。

Netlet Applet

Netlet applet 负责在远程客户机与内部网应用程序(如 Telnet、Graphon 或 Citrix)之间设置加密 TCP/IP 通道。applet 将信息包加密,并将其发送至“网关”,然后解密来自“网关”的响应信息包,并将其发送至本地应用程序。

对于静态规则,当用户登录到门户时,将自动下载 Netlet applet。对于动态规则,当用户单击对应于动态规则的链接时,会下载 applet。有关静态和动态规则的详细信息,请参阅“规则类型”

要在“Sun Ray 环境”中运行 Netlet,请参阅“在 Sun Ray 环境中运行 Netlet”

Netlet 规则

Netlet 规则会将需要在客户机上运行的应用程序映射到相应的目的服务器中。这意味着 Netlet 仅适用于发送至在 Netlet 规则中所定义端口中的信息包。这将保证更高的安全性。

作为管理员,您需要为 Netlet 的运行配置特定规则。这些规则指定各种细节,如要使用的密码、要调用的 URL、要下载的 applet、目的端口以及目的主机。当客户机上的用户通过 Netlet 发出请求时,这些规则有助于确定建立连接必须采用的方式。有关详细信息,请参阅“定义 Netlet 规则”

Netlet 提供者

这是 Netlet 的 UI 组件。提供者允许用户从 Sun ONE Portal Server 桌面配置所需的应用程序。提供者中创建了一个链接,用户单击此链接可运行所需的应用程序。用户也可在 Netlet 提供者的桌面上指定动态规则的目的主机。请参阅“定义 Netlet 规则”

加密代理

所有客户机请求均通过“加密代理”进行发送。“加密代理”仅处理 Netlet 请求,并将其它所有请求传递至“解密代理”。“加密代理”分析 Netlet 请求,并将其传递至“Netlet 代理”(如果已启用),或直接传递至目的主机。

Netlet 代理(可选)

“网关”可确保远程客户机与“网关”之间的通道安全。“Netlet 代理”是可选的,在安装期间可以选择不安装此代理。有关“Netlet 代理”的信息,请参阅“使用 Netlet 代理”

目的端口

这是目的应用程序的服务器在其上进行监听的端口。

Netlet 使用方案

Netlet 的使用涉及下列一系列事件:

  1. 远程用户登录至 Sun™ ONE Portal Server 桌面。
  2. 如果已为用户、角色或组织定义了静态 Netlet 规则,则自动将 Netlet applet 下载到远程客户机中。
  3. 如果已为用户、角色或组织定义了动态规则,则用户需要在 Netlet 提供者中配置所需的应用程序。当用户单击 Netlet 提供者中的应用程序链接时,将下载 Netlet applet。有关静态和动态规则的详细信息,请参阅“定义 Netlet 规则”

  4. Netlet 将监听在 Netlet 规则中定义的客户机端口。
  5. Netlet 将在远程客户机与服务器之间通过 Netlet 规则中指定的端口而设置一个频道。

使用 Netlet

为了使 Netlet 能够根据不同组织中各个用户的需要进行工作,您需要完成以下操作:

  1. 根据用户要求,确定需要创建静态规则还是动态规则。请参阅“规则类型”
  2. 从 Identity Server 管理控制台上的“服务配置”标签中定义 Netlet 模板中的全局选项。请参阅第 11 章,“配置 Netlet”
  3. 确定规则应基于组织、角色还是用户,并按照需要在每一级别进行修改。有关组织、角色以及用户的详细信息,请参阅 Sun ONE Portal Server 管理员指南。


定义 Netlet 规则

Netlet 配置通过 Netlet 规则进行定义,而这些规则在“SRA 配置”部分下的 Identity Server 管理控制台中配置。可以为组织、角色或用户配置 Netlet 规则。如果为角色或用户配置 Netlet 规则,请在选择组织后选择所需的角色或用户。

Netlet 规则由以下字段组成:

表 5-1 列出了 Netlet 规则中的字段。表 5-1 包含三列。第一列列出字段名称。第二列对字段及其在 Netlet 规则中的功能进行描述。第三列列出该特定字段可能的值。

表 5-1 Netlet 规则中的字段

参数

描述

规则名

指定 Netlet 规则的名称。需要为每一规则指定一个唯一的名称。这在定义用户对指定规则的访问权限时是很有用的。有关详细信息,请参阅“定义 Netlet 访问规则”

 

加密密码

定义加密密码,或指定用户可从中进行选择的密码列表。

您所选择的密码会以列表形式出现在 Netlet 提供者中。用户可从选定列表中选择所需的密码。

默认值 - 使用在 Netlet 管理控制台中指定的“默认 VM 本地密码”和“默认 Java Plugin 密码”。

URL

指定当用户在 Netlet 提供者中单击相关链接时浏览器所打开的 URL。浏览器打开应用程序的窗口,并连接到本地端口号(稍后在规则中指定)处的 localhost

您需要指定相关的 URL。

由 Netlet 规则所调用的应用程序的 URL。例如,telnet://localhost:30000

如果应用程序使用 applet 调用应用程序,请指定一个 URL。

null - 当应用程序不是由 URL 启动或者由桌面进行控制时,您所设定的值。对于不基于网络的应用程序而言,该项通常为 true。

下载 Applet

指示是否有必要为本规则下载 applet。

False - 不下载 applet。

True - 使用回送端口从 Portal Server 机器下载 applet。

clientport:server:serverport 格式指定 applet 详细信息,其中:

  • clientport 表示客户机上的目的端口。该端口必须要不同于默认回送端口。有关详细信息,请参阅第11 章,“配置 Netlet”。为每一规则指定一个唯一的 client port
  • server 是自其下载 applet 的服务器名称。
  • serverport 代表服务器上用于下载 applet 的端口。

如果要下载 applet,且未指定服务器,则从 Portal Server 主机下载 applet。

扩展会话

它控制当 Netlet 处于活动状态时 Portal Server 会话的空闲超时。

启用 - 当只有 Netlet 处于活动状态而其余门户应用程序空闲时,需要该项使门户会话保持有效状态。

禁用 - 即使 Netlet 应用程序处于活动状态而其余门户应用程序空闲,在会话空闲超时的时候门户会话空闲超时。

客户机端口

Netlet 进行监听的客户机上的端口。

clientport 的值必须是唯一的。不能在一个以上的规则中指定特定端口号。

如果要为多个连接指定多台主机,需指定多个客户机端口。有关语法,请参阅“具有多个主机连接的静态规则”

对于 FTP 规则,客户机端口值必须是 30021

目标主机

Netlet 连接的收件人。

host - 接收 Netlet 连接的主机名。它用于静态规则中。使用简单主机名,如 siroe,或全限定 DNS 样式的主机名,如 siroe.mycompany.com。您可以指定多台主机,以便:

TARGET - 在语法中指定 TARGET 的规则为动态规则。TARGET 表示最终用户可在桌面 Netlet 提供者中指定所需一个或多个目的主机。

单个规则中不能同时具有静态主机和 TARGET。

目标端口

目标主机上的端口

除主机与目标外,还必须要指定一个目的端口。

在有多台目的主机的情况下,可以指定多个目的端口。以 port1+port2+port3-port4+port5 格式指定多个端口。

端口号之间的加号 (+) 表示某单一目标主机的备选端口。

端口号之间的减号 (-) 是不同目标主机端口号之间的分隔符。

在此,Netlet 按顺序依次使用 port1port2port3,以尝试连接到指定的第一台目的主机。如果失败,Netlet 使用 port4port5(按此顺序)以尝试连接到第二台主机。

只可为静态规则配置多个端口。

规则类型

根据规则中目的主机的指定方式,将 Netlet 规则分为两种类型。

静态规则

静态规则将目的主机指定为规则的一部分。如果创建静态规则,用户就无权指定所需的目的主机。在下面的示例中,sesta 是目的主机。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

ftpstatic

SSL_RSA_WITH_RC4_128_MD5

null

false

true

30021

sesta

21

可为静态规则配置多台目标主机和多个端口。有关示例,请参阅“具有多个主机连接的静态规则”

动态规则

在动态规则中,目的主机不指定为规则的一部分。用户可以在 Netlet 提供者中指定所需的目的主机。在下面的示例中,TARGET 是目的主机的占位符。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

ftpdynamic

SSL_RSA_WITH_RC4_128_MD5

null

false

true

30021

TARGET

21

加密密码

根据加密密码,可将 Netlet 规则进一步分类如下:

有关 Netlet 所支持的密码及相应关键字的列表,请参阅“支持的密码“

支持的密码

表 5-2 在第一列中列出 Netlet 所支持的密码,在第二列中列出用于同密码相关的关键字。使用相应的关键字指定 Netlet 规则中的密码。

表 5-2 支持密码的列表

密码

关键字

本地 VM 密码

KSSL_SSL3_RSA_WITH_3DES_EDE_CBC_SHA

 

KSSL_SSL3_RSA_WITH_RC4_128_MD5

 

KSSL_SSL3_RSA_WITH_RC4_128_SHA

 

KSSL_SSL3_RSA_EXPORT_WITH_RC4_40_MD5

 

KSSL_SSL3_RSA_WITH_DES_CBC_SHA

 

Java Plugin 密码

SSL_RSA_WITH_3DES_EDE_CBC_SHA

 

SSL_RSA_WITH_RC4_128_MD5

 

SSL_RSA_WITH_RC4_128_SHA

 

SSL_RSA_EXPORT_WITH_RC4_40_MD5

 

SSL_RSA_WITH_DES_CBC_SHA

 

SSL_RSA_WITH_NULL_MD5

 

向后兼容性

Portal Server 的早期版本不支持将密码作为 Netlet 规则的一部分。考虑到不带密码的现有规则的向后兼容性,这些规则将使用默认密码。不带密码的现有规则,如:

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

Telnet

 

telnet://localhost:30000

false

true

30000

TARGET

23

会被解释为:

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

Telnet

默认密码

telnet://localhost:30000

false

true

30000

TARGET

23

这与将“加密密码”字段选为“默认值”的“管理员配置规则”相似。有关详细信息,请参阅“指定默认加密密码”

* 回环由系统在内部使用。


注意

Netlet 规则不可包含任何高于 64000 的端口号。


Netlet 规则示例

本部分包含 Netlet 规则的几个示例以说明 Netlet 语法的作用机理。

基本静态规则

该规则支持客户机与 sesta 机器之间的 Telnet 连接。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

myrule

SSL_RSA_WITH_RC4_128_MD5

null

false

true

1111

sesta

23

其中

myrule 是规则名称。

SSL_RSA_WITH_RC4_128_MD5 表示要使用的密码。

null 表示该应用程序并非由 URL 调用或通过桌面运行。

false 表示客户机在运行该应用程序时并不下载 applet。

true 表示当 Netlet 连接处于活动状态时 Portal Server 不应超时。

1111 是客户机上的端口,Netlet 在此监听来自目标主机的连接请求。

sesta 是 Telnet 连接中的接收方主机名称。

23 是连接中目标主机上的端口号,在本例中为众所周知的 Telnet 端口。

桌面 Netlet 提供者不显示链接,但 Netlet 会自动启动,并监听指定端口 (1111)。指示用户启动客户机软件 - 本例为连接到端口 1111 上的 localhost 的 Telnet 会话。

例如,要启动 Telnet 会话,客户需要在终端的 UNIX 命令行中键入以下内容:

telnet localhost 1111

具有多个主机连接的静态规则

该规则支持从客户机到两台主机 sestasiroe 的 Telnet 连接。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

myrule

SSL_RSA_WITH_RC4_128_MD5

null

false

true

1111

sesta

23

 

 

 

 

 

1234

siroe

23

其中

23 是连接中目标主机上的端口号 - 专为 Telnet 保留的端口。

1111 是客户机上的端口,Netlet 在此监听来自第一台目标主机 sesta 的连接请求。

1234 是客户机上的端口,Netlet 在此监听来自第二台目标主机 siroe 的连接请求。

该规则中的前六个字段与“基本静态规则”中的字段相同。区别在于标识第二台目标主机的另外三个字段。

在向规则中添加附加目标时,必须为每一台新目标主机添加三个字段,即 client port target host 以及 target port


注意

您可以用多组三字段来描述与每一目标主机的连接。如果远程客户机是基于 UNIX 的,切不可使用小于 2048 的监听端口号,因为编号较低的端口将受限制,而且您必须是根用户才能启动监听器。


该规则与前一规则作用相同。Netlet 提供者不显示任何链接,但 Netlet 会自动启动,并监听指定的两个端口 (1234)。用户需要启动客户机软件(在本例中为 Telnet 会话),它将连接至端口 1111 上的 localhost 或端口 1234 上的 localhost,以便连接到主机 example2。

具有多主机选择的静态规则

使用该规则可指定多台备选主机。如果与规则中第一台主机的连接失败,Netlet 会尝试连接指定的第二台主机,依此类推。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

gojoe

SSL_RSA_WITH_RC4_128_MD5

/gojoe.html

8000:gojoeserver:8080

true

10491

siroe+sesta

35+26+491-35+491

其中

10491 是客户机上的端口,Netlet 在此监听来自目标主机的连接请求。

依据可用的端口,Netlet 将首先尝试与端口 35、端口 26 和端口 491 上的 siroe 建立连接(均按相同顺序)。

如果无法连接到 siroe,则 Netlet 会尝试连接到端口 35491 上的 sesta(按相同顺序)。

调用 URL 的动态规则

该规则允许用户配置所需的目的主机,从而使用户可通过 Netlet 远程登录到各个主机上。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

myrule

SSL_RSA_WITH_RC4_128_MD5

telnet://localhost:30000

false

true

30000

TARGET

23

其中

myrule 是规则名称。

SSL_RSA_WITH_RC4_128_MD5 表示要使用的密码。

telnet://localhost:30000 是由规则所调用的 URL。

false 表示将不会下载任何 applet。

true 表示当 Netlet 连接处于活动状态时 Portal Server 不应超时。

30000 是客户机上的端口,Netlet 在此监听针对该规则的连接请求。

TARGET 表示目的服务器需要由用户使用 Netlet 提供者进行配置。

23 是由 Netlet 打开的目标主机上的端口,在本例中为众所周知的用于 Telnet 的端口。

  在添加规则之后运行 Netlet

添加该规则之后,用户必须要完成一些步骤才能使 Netlet 按照预期方式运行。用户需要在客户机端执行以下操作:

  1. 在 Portal Server 桌面的 Netlet 提供者部分单击“编辑”。
  2. 在“添加新目标”部分的“规则名称”下面会列出新的 Netlet 规则。

  3. 选择规则名称,并键入目标主机的名称。
  4. 保存更改。
  5. 用户返回桌面,同时在 Netlet 提供者部分会看到新的链接。

  6. 单击新链接。
  7. 将会启动一个新的浏览器,转至 Netlet 规则中给出的 URL。


    注意

    通过重复以上步骤可以为同一规则添加多台目标主机。


下载 Applet 的动态规则

该规则将在客户机与动态分配的主机之间定义 GO-Joe 连接。它会从 applet 所处的服务器上将 GO-Joe applet 下载到客户机中。

规则名称

加密密码

URL

下载 Applet

扩展会话

客户机端口

目标主机

目标端口

gojoe

SSL_RSA_WITH_RC4_128_MD5

/gojoe.html

8000:gojoeserve:8080

true

3399

TARGET

58

其中

gojoe 是规则名称。

SSL_RSA_WITH_RC4_128_MD5 表示要使用的密码。

例如,此处的 /gojoe.html 是包含 applet 的 HTML 页的路径,该路径应相对于部署门户的网络容器的文档根。

8000:server:8080 指明端口 8000 是用于接收 applet 的客户机上的目的端口,gojoeserve 是提供 applet 的服务器的名称,8080 则是自其下载 applet 的服务器上的端口。

表示当 Netlet 连接处于活动状态时 Portal Server 不应超时。

3399 是客户机上的端口,Netlet 在此监听该类型的连接请求。

TARGET 表示目的服务器需要由用户使用 Netlet 提供者进行配置。

58 是由 Netlet 所打开的目的服务器上的端口,在本例中为 GoJoe 的端口。端口 58 是目标主机监听其自身通信量的端口。Netlet 将信息从新 applet 传递至该端口。


Netlet 规则示例

表 5-3 列出了一些常见应用程序的 Netlet 规则示例。

该表由 7 列组成,分别对应于 Netlet 规则中的以下字段:规则名称、URL、下载 Applet、客户机端口、目标主机、目标端口。最后一列中包括对规则的描述。


注意

表 5-3 未列出 Netlet 规则的“密码”与“扩展会话”字段。对于所提供的示例,假定这两个字段分别为 "SSL_RSA_WITH_RC4_128_MD5" 和 "true"。


表 5-3 Netlet 规则示例

规则

URL

下载 Applet

客户机端口

目标主机

目标端口

描述

IMAP

null

false

10143

imapserver

143

客户机端的 Netlet client port 不必与服务器端的 target port 相同。如果您使用的不是标准的 IMAP 和 SMTP 端口,请确保配置客户机以将其连接在不同于标准端口的端口上。

Solaris 客户机用户在连接到端口号小于 1024 的端口时会遇到麻烦,除非他们以根用户身份运行。

SMTP

null

false

10025

smtpserver

25

Lotus 网络客户机

null

false

80

lotus-server

80

该规则将指示 Netlet 监听端口 80 上的客户机,并连接到端口 80 上的 lotus-server 服务器。“Lotus 网络客户机”的一项要求就是客户机监听端口必须与服务器端口匹配。

Lotus Notes
非网络客户机

null

false

1352

lotus-domino

1352

利用此项规则,Lotus Notes 客户机可以通过 Netlet 连接到 Lotus Domino 服务器。需确保在客户机尝试连接到服务器时,它切不可指向作为服务器名称的 localhost。它必须指向 Lotus Domino 服务器的实际服务器名称。服务器名称必须与服务器的系统名称相同。当使用 Netlet 时,客户机必须将该名称解析为 127.0.0.1。有两种方法可实现此目的:

  • 在客户机主机表中设置服务器名称使其指向 127.0.0.1
  • 导出指向 127.0.0.1 的服务器名称的 DNS 条目。

服务器名称必须是安装期间用于配置 Domino 服务器的同一服务器名称。

Microsoft Outlook 与 Exchange Server

它不适用于 Windows NT、2000 和 XP。对于 Windows NT、2000 和 XP,请借助于“重写器”使用 Outlook Web Access。

null

false

135

exchange

135

该规则指示 Netlet 在端口 135 上监听客户机,并连接到端口 135 上的服务器 exchange。Outlook 客户机使用此端口进行首次尝试以联系 Exchange 服务器,并确定和该服务器通话时要使用的后续端口。

在客户机上:

  • 用户必须在 Outlook 客户机中将配置的 Exchange 服务器主机名更改为 localhost。
  • 用户必须使用主机文件将 Exchange 服务器的主机名(单一且全限定)映射到 IP 地址 127.0.0.1
  • 在 Windows 95 或 98 中,该文件位于 \Windows\Hosts
  • 在 Windows NT4 中,该文件位于 \WinNT\System32\drivers\etc\Hosts 下。

该项形式如下:

127.0.0.1 exchange exchange.company.com

Exchange 服务器将其本身的名称发送回 Outlook 客户机。该映射可确保 Outlook 客户机使用 Netlet 客户机连接回服务器。

FTP

null

false

30021

your-ftp_
server.your-domain

21

您可以利用所控制的最终用户帐户为单个的“FTP 服务器”提供 FTP 服务。这可确保从最终用户系统到单一位置的安全远程 FTP 传输。若无用户名,则将 FTP URL 解释为一个匿名的 FTP 连接。

必须将端口 30021 定义为 Netlet FTP 规则的客户机端口。

使用 Netlet 连接不支持动态 FTP。

Netscape 4.7 邮件客户机

null

false

30143, 30025.

 

TARGET

TARGET

10143

10025

在 Netscape 客户机中,用户需要指定:

用于 IMAP 或接收邮件的 localhost:30143

用于 SMTP 或发送邮件的 localhost:30025

Graphon

third_party/xsession_
start.html

true

10491

TARGET

491

这是用于通过 Netlet 访问 Graphon 的规则。xsession_start.html 与 Graphon 捆绑在一起。

Citrix

third_party/citrix_start.html

true

1494

TARGET

1494

这是用于通过 Netlet 访问 Citrix 的规则。citrix_start.html 与 Citrix 捆绑在一起。

远程
控制

third_party/pca_start.html

true

5631

5632

TARGET

TARGET

5631

5632

这是用于通过 netlet 访问“远程控制”的规则。pca_start.html 与“远程控制”捆绑在一起。


启用 Netlet 日志

您可以在“网关”服务中启用 Netlet 相关活动的日志。请参阅“启用 Netlet 日志”。在“日志位置”属性中指定的目录内将会创建日志文件,作为“Identity Server 配置”属性“日志”的一部分。日志文件命名惯例如下:

srapNetlet_gateway hostname_gateway-profile-name

Netlet 日志会捕捉以下信息:


在注销时终止 Netlet

要在用户注销时终止 Netlet,“网关”需要从 Portal Server 获得会话通知。要获取通知,请执行以下操作:

  1. 将下面一行:
  2. com.iplanet.am.jassproxy.trustAllServerCerts=true

    添加到 Portal Server 上的以下属性文件中:

    portal-server-install-root/SUNWam/lib/AMConfig.properties

  3. 从终端窗口中重新启动“网关”:
  4. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

  5. 重新启动 Portal Server(网络服务器或应用程序服务器)。


自定义 Netlet

可自定义在 Netlet 提供者消息窗口和 Netlet 服务的管理控制台中显示的文本。


在 Sun Ray 环境中运行 Netlet

如果您要在 Sun Ray 环境中运行需要将 applet 下载到客户机上的应用程序,就需要更改 HTML 文件。这里是一个示例文件,向您显示需要完成的必要修改。

新 HTML 文件

<!-- @(#)citrix_start.html 2.1 98/08/17 Copyright (c) 1998 i-Planet, Inc., All rights reserved. -->

<html>

<script language="JavaScript">

var KEY_VALUES; // KEY_VALUES['key'] = 'value';

function retrieveKeyValues() {

KEY_VALUES = new Object();

var queryString = '' + this.location;

queryString = unescape(queryString);

queryString = queryString.substring((queryString.indexOf('?')) + 1);

if (queryString.length < 1) {

   return false; }

var keypairs = new Object();

var numKP = 0;

while (queryString.indexOf('&') > -1) {

keypairs[numKP] = queryString.substring(0,queryString.indexOf('&'));

queryString = queryString.substring((queryString.indexOf('&')) + 1);

numKP++;

}

// Store what's left in the query string as the final keypairs[] data.

keypairs[numKP++] = queryString;

var keyName;

var keyValue;

for (var i=0; i < numKP; ++i) {

keyName = keypairs[i].substring(0,keypairs[i].indexOf('='));

keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);

while (keyValue.indexOf('+') > -1) {

keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring(keyValue.indexOf('+') + 1);

}

keyValue = unescape(keyValue);

// Unescape non-alphanumerics

KEY_VALUES[keyName] = keyValue;

}

}

function getClientPort(serverPort) {

   var keyName = "clientPort['" + serverPort +"']";

   return KEY_VALUES[keyName];

}

function generateContent() {

   retrieveKeyValues();

   var newContent =

      "<html>\n"

   + "<head></head>\n"

   + "<body>\n"

   + "<applet code=\"com.citrix.JICA.class\" archive=\"JICAEngN.jar\" width=800 height=600>\n"

   + "<param name=\"cabbase\" value=\"JICAEngM.cab\">\n"

   + "<param name=\"address\" value=\"localhost\">\n"

   + "<param name=ICAPortNumber value="

   + getClientPort('1494')

   + ">\n"

   + "</applet>\n"

   + "</body>\n"

   + "</html>\n";

   document.write(newContent);

}

</script>

<body onLoad="generateContent();">

</body>

</html>

弃用的 HTML 文件:

<html>

<body>

<applet code="com.citrix.JICA.class" archive="JICAEngN.jar" width=800 height=600>

<param name="cabbase" value="JICAEngM.cab">

<param name="address" value="localhost">

<param name=ICAPortNumber value=1494>

</applet>

</body>

</html>



上一页      目录      索引      下一页     


版权所有 2003 Sun Microsystems, Inc. 保留所有权利。