用心制 作的情况下上线的,提高了用户的回头率.
22.5 代码实现
在完成基本的控件布局和 CSS 样式布局之后, 页面就能够呈现在客户端浏览器中. 但是如果用户想 要在页面中执行逻辑操作,就需要进行代码实现完成应用程序所需要执行的页面逻辑,以保证用户注册 功能能够良好的运行.
22.5.1
验证控制
在用户进行注册操作时,需要对用户进行用户验证控制,例如用户没有输入密码的情况下单击了注 册控件,数据是不应该被插入到数据库中的.如果没有对数据进行验证则会插入很多空数据,影响数据 库功能.若要实现验证控制,可以使用现有的验证控件进行验证
控制,示例代码见关盘中
源代码\第 22 章\22-1\22-1\Default.aspx. 上述代码使用了 RequiredFieldValidator 控件进行了基本的验证,如果用户输入的用户名和密码以及 性别为空,则会说明用户名和密码以及性别为空,请重新输入,如图 22-6 所示.
547
图 22-6
验证控制
进行验证控制后,就能够防止非法用户或用户疏忽所造成的空数据库
问题,也方便了数据维护的进 行.
22.5.2
过滤输入信息
在进行数据操作之前,并不能只凭用户输入的信息是否为空就能够判断用户是否是合法用户,在 Web 应用中包括很多的不好的信息, 例如黄色淫秽名称或者是特殊的字符串, 都有可能对网站造成危害. 注意:不仅仅是黄色淫秽的名称会对网站造成危害,特殊的字符串还有可能造成 SQL 注入等更大 的危害. 在用户单击按钮控件时会执行数据插入操作,在数据插入之前就需要对信息进行过滤,示例代码如 下所示.
protected void Button1_Click(object sender, EventArgs e) { if (Check(TextBox1.Text) || Check(TextBox2.Text) || Check(TextBox4.Text) || Check(TextBox5.Text) || Check(TextBox6.Text) || Check(TextBox7.Text)) { Label8.Text = "用户信息中不能够包含特殊字符如<,>,',//,\\等,请审核"; } else { //注册代码 } } //输出信息
//判断
上述代码使用了 Check 函数对文本框控件进行了用户资料的判断,Check 函数的实现如下所示.
protected bool Check(string text) { if (text.Contains("<") || text.Contains(">") || text.Contains("'") || text.Contains("//") || text.Contains("\\")) { return true; } else { return false; } } //返回假 //返回真 //检查字串 //判断实现
Check 函数定义了基本的判断方式,如果文本框信息中包含"<",">","'","/","\"等 字符串时,该方法将会返回 true,否则会返回 false.这也就是说,如果字符串中包含了这些字符,则会 返回 true.在 Button1_Click 函数中就会判断包含非法字符,并进行提示,否则会执行注册代码.对关键 字的过滤是非常必要的,这样能够保证应用程序的完整性并提高应用程序健壮性,同时也对数据库中的 完整性进行了保护.
548
22.5.3
插入注册信息
当用户单击按钮控件时,如果对用户进行了非空验证和关键字过滤后,就能够进行数据的插入,用 户可以使用 ADO.NET 进行数据操作,示例代码如下所示.
protected void Button1_Click(object sender, EventArgs e) { if (Check(TextBox1.Text) || Check(TextBox2.Text) || Check(TextBox4.Text) || Check(TextBox5.Text) || Check(TextBox6.Text) || Che