构
对控件实施授权的主要步骤包括:
1.已授权控件在其构造函数中调用静态方法 System.ComponentModel.LicenseManager.Validate。(该控件也可以在其构造函数中调用静态方法 LicenseManager.IsValid。在这种情况下,返回类型与图中显示的会有所不同,并且不会引发异常。)
2.LicenseManager.Validate 方法检查组件的元数据,从应用于该组件的 LicenseProviderAttribute 属性获得许可提供程序的类型。许可提供程序类必须从 System.ComponentModel.LicenseProvider 类派生。
3.LicenseManager 对许可提供程序类(System.ComponentModel.LicenseProviderAttribute 元数据属性中指定了它的类型)进行实例化,将该组件的类型传递到该许可提供程序,并指出该组件在设计时使用还是在运行时使用。
4.许可提供程序在许可缓存中查找组件的许可。如果找到一个许可,许可提供程序就验证该许可。注意,许可缓存查找和许可存储不是一般的要求,而是特定于 ServerLicenseProvider - 我们已经实现的许可提供程序的。
a.(仅限第一次)许可提供程序获取许可数据,并进行验证。如果该数据无效,许可提供程序将引发 System.ComponentModel.LicenseException 异常。
b.(仅限第一次)如果许可数据有效,许可提供程序将创建一个许可(从 System.ComponentModel.License 派生的类)。此外,许可提供程序还会验证许可,如果许可有效,则将它存储在许可缓存中。
5.许可提供程序将一个有效许可返回许可管理器,或引发许可异常。
6.LicenseManager.Validate 方法返回一个有效许可,或将许可异常传递到调用代码中。