ASP.NET控件设计器使用有几点需要注意的呢?
一、ASP.NET控件设计器使用的方案
有两种可能使用ASP.NET控件设计器使用的常见方案:开发自定义控件和开发可视设计工具。
如果开发自定义 Web 服务器控件,可以创建关联的设计器来提高页面开发人员在设计时配置控件的能力。如果该控件可能被许多页面开发人员重用,则该方案尤其有用。例如,可能创建自定义图表控件。如果提供关联的控件设计器,则不同的 Intranet 页面开发人员中每个人都可以用不同的样式在页面上配置控件。
如果开发一种与 Visual Studio 2005 或 Microsoft FrontPage 类似的可视化 Web 设计工具,则可以使用控件设计器承载组件。这将使您的工具能够提供服务和与控件设计器交互,从而为自定义控件提供设计时呈现。
有关 .NET Framework 设计器结构的更多信息,请参见 设计时结构。有关为自定义 Web 服务器控件创建自己的设计器的详细信息,请参见 演练:为 Web 服务器控件创建基本控件设计器。有关创建具有服务和操作列表的自定义控件设计器以提供设计时用户界面 (UI) 的详细信息,请参见 具有操作表和服务的示例控件设计器。
二、保证自定义ASP.NET控件设计器使用的安全
当控件位于设计视图中时,设计器组件将会处理属性更改,并在设计宿主(例如 Visual Studio)中呈现标记。设计时,控件的设计器组件与其设计宿主在同一个信任级别上运行。设计器组件可能会执行下列操作:访问数据库,调用远程服务器上的网站,创建文件并将其写入开发人员的计算机,发送电子邮件,以及执行其他程序集中的代码。
本节中的信息介绍了一些最佳做法,可帮助于您提高控件设计器功能的安全性。
除了遵循编码和配置的最佳做法来帮助提高应用程序的安全性之外,请确保利用 Microsoft Windows 和 Internet 信息服务 (IIS) 的最新安全更新,使应用程序服务器始终保持最新。您还应当确保具有已安装在计算机上的任何商用自定义控件包的最新版本。
在 Michael Howard 和 David LeBlanc 编写的 Writing Secure Code(《编写安全代码》)一书中,您可以找到有关编写安全代码和保护应用程序安全的最佳做法的更多详细信息。有关其他指南,请参见 Microsoft Patterns and Practices(Microsoft 模式和实践)网站和 指南与最佳做法。
◆自定义控件用户面临的安全问题
您应该清楚,来自未知源的自定义控件可能包含将您计算机中的敏感数据在网上公开或在设计时运行恶意代码的设计器。不能使用代码访问配置来限制控件设计器的访问,因为这些设计器始终必须以完全信任级别在设计宿主中运行。有关信任级别的更多信息,请参见 ASP.NET 信任级别和策略文件。有关代码访问安全性的更多信息,请参见 代码访问安全性介绍。
◆自定义控件开发人员面临的安全问题
使用类和成员的配置属性将权限限定为控件功能所需的最低级别的做法,并不能对设计器组件提供足够的安全防范,因为这些组件必须以完全信任级别在设计宿主中运行。
如有可能,在预览数据控件(如 GridView 控件)时,请不要使用数据库中的实时数据来显示示例结构。这会暴露数据库中可能敏感的数据 应改使示例数据结构来构建预览数据。
◆设计宿主开发人员面临的安全问题
如果您要开发设计宿主(如 Visual Studio),则应检查 HTML 标记、文本以及从设计器返回的其他数据是否存在安全风险,只有在不存在安全风险时,才对其进行显示。此外,将 HTML 标记字符串和设计器区域的大小限定为易于管理的大小。有关 HTML 验证的更多信息,请参见 在 ASP.NET 网页中验证用户输入
三、ASP.NET控件设计器使用支持多种开发工具
Microsoft Visual Web Developer 支持在本主题中讨论的所有功能,但是其他开发工具可能不支持。可能不被支持的功能的一些示例为:
◆区域。
控件开发人员可以检查 SupportsRegions 属性和相应修改控件设计器的行为。
◆主机服务。
使用该服务之前,控件开发人员可以检查 GetService 方法的返回值。有关示例,请参见 如何:将服务和操作列表用于控件设计器。
◆区域集合。
GetDesignTimeHtml 方法的两个版本都应该被重写,因为某些开发工具不支持区域集合。
ASP.NET控件设计器使用基本的使用情况就向你介绍到这里,希望对你了解ASP.NET控件设计器有所帮助。
【编辑推荐】