ASP.NET设计控件净化网站语言(1)

发表于:2007-06-30来源:作者:点击数: 标签:
一、概述 考虑一下这种情形:你为一个Web网站写了一个应用程序,它的功能是接受用户的输入并将输入内容永久保存,例如保存到 数据库 ,另外还要在网站上显示出用户输入的内容,例如论坛就是一个很典型的例子。 如果用户来源很杂,必须考虑如何防止用户提交和
    
    一、概述
  
    考虑一下这种情形:你为一个Web网站写了一个应用程序,它的功能是接受用户的输入并将输入内容永久保存,例如保存到数据库,另外还要在网站上显示出用户输入的内容,例如论坛就是一个很典型的例子。
  
    如果用户来源很杂,必须考虑如何防止用户提交和张贴攻击性(或者色情的、庸俗的)的内容。可能的解决方案包括:
  
     ⑴ 将用户群限制到一个封闭的用户团体,即要求用户使用程序功能之前必须先注册/登录。这样,由于每次提交的内容都可以追查到提交者,用户破坏网站规则的可能性就小了很多。如果有用户做出了不应该做的事,你就可以核实用户身份,予以相应的处理。
  
    ⑵ 在网站上发布用户提交的内容之前,先由管理员审阅。很多时候,由于人力资源有限,这个办法不一定行得通。
  
    ⑶ 禁止用户提交攻击性内容。这是最理想的解决办法,把问题解决在起源。但具体应该怎么实现呢?
  
    本文介绍的方案以一个复合控件为基础,利用一个XML文件来定义攻击性词语。我们将用VB.net编写这个复合控件,用普通的文本编辑器和命令行编译器(vbc)完成整个工程的构建。
  
    在正式编写控件之前,首先我们来简单地回顾一下ASP.NET中控件的概念。本文出现的所有控件都是服务器控件,它们在服务器上运行,将HTML代码发送到客户端。要理解控件的分类,可以从控件是否嵌入到Web表单页面(因而采用按需编译方式)或预先编译的角度来观察。微软定义了下列ASP.NET服务器控件:HTML服务器控件,Web服务器控件,验证控件,用户控件。
  
    前三种控件读者应该已经比较熟悉了,对于开发者来说,它们是最简单的控件类型,在ASP.NET中已经由微软为我们编写好。用户控件则有所不同。用户控件是“包装”成.ascx页面形式的.aspx页面,其他.aspx页面可以通过注册和实例化来调用用户控件的功能。这是一种被寄予厚望的服务器端控件,对于ASP/ASP.NET开发者来说,它代表着一大进步,特别地,现在编写控件的语言已经全面支持面向对象技术。
  
    ASP.NET用户控件由一个或多个服务器控件、静态HTML元素构成,可以包含额外的代码,每个用户控件封装一组特定的功能。用户控件可以通过简单地扩展现有服务器控件(控件组)得到,例如,带有旋转功能的图形控件,在文本框中保存日期的日历控件。
  
  

原文转自:http://www.ltesting.net