摘要:了解 ASP.NET 服务器控件的授权要求,了解可用于 .NET 框架版本 1.0 和 1.1 的 ASP.NET 控件授权实现。该实现可以进行扩展,以创建自定义的服务器端授权方案。(23 页打印页)
Nikhil Kothari Microsoft ASP.NET 小组
Vandana Datye 自由撰稿人
2003 年 7 月
适用于: Microsoft? ASP.NET
请下载 ASPNETControlLicensing.msi。
背景
本文假设读者熟悉 Microsoft? ASP.NET 编程和 ASP.NET 服务器控件创建。
Developing Microsoft ASP.NET Server Controls and Components (ISBN 0-7356-1582-9)(Microsoft Press,2002。保留所有权利。)一书中,关于授权部分内容更详细的阐述。该部分内容的使用已获得 Microsoft Press 的许可。有关该书的详细信息,请参阅 http://www.microsoft.com/mspress/books/5728.asp。
本页内容
简介
ASP.NET 服务器控件授权要求
已授权控件演练
.NET 框架授权结构
ASP.NET 服务器控件授权基础结构
扩展默认授权方案
过期许可方案
加密的许可方案
授权实现核对清单
小结
简介
Microsoft .NET 框架有一个内置的可扩展授权结构,支持所有托管组件(包括业务对象、Windows 窗体控件和 ASP.NET 服务器控件)的设计时授权和运行时授权。本文就建立在该结构的基础上,以提供专门针对 ASP.NET 控件进行优化的授权实现,并且,您可以扩展该授权实现,以创建自定义授权方案,例如:
-
简单授权方案 - 只检查是否存在有效的许可数据,以决定是否启用控件。
-
按每次使用授权方案 - 经过某个使用计数后,许可过期。此方案可用于控件的演示版。许可过期后,应用程序开发人员可以注册(和购买)您的控件,然后收到一个不过期许可。
-
只有当请求来自特定客户机(如本地计算机)时,才在某个页面中启用 ASP.NET 服务器控件的授权方案。此方案可用于实现控件的试用版。
-
依靠加密来防止应用程序开发人员进行许可数据欺骗的授权方案。
ASP.NET 服务器控件授权要求
ASP.NET 服务器控件授权方案必须满足以下要求:
-
支持不编译方案。ASP.NET Web 应用程序常常使用动态编译模型,因此没有与应用程序相关联的预编译程序集。授权机制不应该依靠在应用程序的程序集中找到作为程序集资源嵌入的许可。
-
支持运行时授权。页面开发人员使用可视设计时工具及简单文本编辑器,来开发自己的页面。授权机制不能依靠设计时检查,必须提供运行时验证。而且,运行时授权实现不应与任何(可选的)设计时授权实现有依赖关系。
-
支持许可缓存机制。理想情况下,每个应用程序只应该检索一次许可数据,而不是针对每个页面请求都进行检索,因为检索逻辑会涉及开销较大的操作,例如,打开文件和对信息解密。应该在第一次需要许可时创建许可,并进行缓存,以便以后在服务器上重用。您仍然可以在每次使用许可来实现基于使用的授权方案时,验证缓存的许可。
-
支持 XCOPY 部署。ASP.NET 使得页面开发人员能够只是通过在网络上的计算机之间复制文件,就可以部署其 Web 应用程序。授权方案不应该依靠注册表,或者其他禁止简单 XCOPY 部署的特定于计算机的资源。
为简单起见,我们在前面的列表中使用了服务器控件这个术语。不过,授权要求适用于所有 ASP.NET 服务器组件。同样,本文中描述的 ASP.NET 控件授权方案也适用于其他 ASP.NET 服务器组件。