当将 ActiveX 控件添加到 Web 页上时,您就将其发布给任意可以从页面上下载控件的用户了。如果不使用许可证书,任何终端用户都可以下载您的控件并在他们自己的应用程序中使用。许可证书就象您的控件的一种版权,可以防止未授权的对您的控件的使用。
在 Internet 上限制控件的使用是一件非常麻烦的事。许可证书中诸如“限用于一台计算机”的表达方式在网络上就完全是另一回事了,因为这“一台计算机”可以是一台容纳 200 个不同 IP 地址的 HTTP 服务器。因此,该软件可能使用(在内存中运行)在成千台匿名的匿名计算机上,而没有一台被许可使用该软件的计算机运行它。这些问题应该在发放 Internet 上的 ActiveX 控件许可之前考虑。
本节将讨论 Microsoft 目前的许可证书方案、如何用 Visual Basic 实现以及 HTML 页面的作者如何在页面上使用这一方案等问题。其中也包括有关许可的一般性讨论。
详细信息 有关许可模式和 .lpk 文件的详细信息,请参阅http://www.microsoft.com/workshop/prog/inetsdk/ 的 Internet Client SDK。
Visual Basic 实现了一种许可方案,它使用一种包含一些方法的机制,计算机可以使用这些方法检索控件的许可信息并创建对象的实例。这是最常用的许可方案。
该许可方案的基本要点如下:
许可文件是与一个或多个 HTML 页面相关联的 .lpk 文件。它包含该页面用到的所有 ActiveX 控件的使用许可字符串。您可以使用 License Package Authoring Tool 为每个页面生成相应的许可文件。该工具可以在“工具”目录中得到,该工具列出了可以包含在许可文件中的控件列表。。
以下是一个许可文件的示例:
LPK License Package ////////////////////////////////////////////////////// //
警告:
本文件中包含的信息受版权法//
和国际条约条款//
的保护。任何未经授权,对该文件或其任意部分的复制、//
或发布//
都可能受到严厉的法律和民事制裁,
//
并将受到最大程度的法律起诉。//
此外,也不能对//
文件进行反向工程、反编译和反汇编。//////////////////////////////////////////////////////
{3d25aba1-caec-11cf-b34a-00aa00a28331}
AQWWF/QT0BG9ewCg0QKOmo=
BQAAAA=yhtrFpw/zxGAdURFU1QAACkAAAB
DAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMQA5ADkANQAsACAAMQA5ADkANgAg
AE0AYQBjAHIAbwBtAGUAZABpAGEALAAgAEkAbgBjAC4A=
重点 要使用 License Package Authoring Tool 在 .lpk 文件中为ActiveX 控件创建一个条目,必须在控件工程的“工程选项”对话框中选定“需要注册键”复选框。
必须在用户下载您的 ActiveX 控件的 Web 页面中嵌入一个称为许可管理器的对象。许可管理器使用 OBJECT 标记来引用控件的 .lpk 文件。如果使用打包和展开向导创建下载包时,它将为您生成许可管理器并将其添加到文件中。
以下是许可管理器的示例:
<!--
如果该页的任何控件需要许可,那么,您必须创建一个许可包文件。运行“工具”目录中的LPK_TOOL.EXE
创建所需要的.lpk
文件。-->
<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
</OBJECT>
注意 必须用您许可文件的路径和名称来代替上述示例中的 LPKPath 和 LPKfilename.LPK 参数。
这段 HTML 代码将 .lpk 文件标识为具有上面显示的类 ID 的对象。
详细信息 请参阅 http://www.microsoft.com/workshop/prog/inetsdk 上 Internet Client SDK 中的 ActiveX 控件部分的“注册 ActiveX 控件”。
除 Microsoft 的方案外,还有其他几种许可模式。其中一种需要使用随时间变化的密匙。在这种情况下,执行以下步骤:
还可以使用其他的机制。例如,如果需要运行时许可,那么在获得许可文件之前,可能需要 Basic身份验证、NT身份验证或其他身份验证。
详细信息 有关基本文本验证和 NT 安全的详细信息,请参阅http://www.microsoft.com/workshop/server/asp/feature/security-f.htm 上的“对 Internet 开发者进行身份验证和安全检查”白皮书。