4.1.1用户登陆界面设计
此界面的主要功能是对使用本系统的用户进行用户名、密码、用户身份的验证,只有合法的用户才能使用本系统。对于初次使用本系统的用户需要先通过注册才能登陆本系统.
用户登陆是系统的入口,用户只有通过该入口才能进入系统,进行操作。用户登陆入口使用两个TextBox控件为用户输入用户名和密码,用户填写正确的用户名和密码后,单击"登陆"按钮就可以登陆到系统[15]。用户登陆系统后登陆入口变成如下界面显示"XX同学,欢迎您!",下面还有一个退出系统的按钮供用户想退出本系统时使用。
用户登陆界面入口使用两个非空验证控件,RequriedFieldValidatorUserName和RequriedFieldValidatorPassword。RFVUserName非空验证控件对用户名称进行验证,RFVPassword对用户密码进行非空验证。这两个非空验证在点击"登陆"按钮时发挥作用。
登陆入口界面如图4.2-4.3所示:
用户点击"登陆"按钮触发事件btn_login_Click(),该事件实现用户的登陆的验证过程。如果用户输入的是正确的用户名和密码,用户就可以登陆到系统中,否则页面弹出用户名或密码错误的对话框如图4.4所示。
用户点击欢迎窗口上的"退出系统"按钮,就可以退出该系统。单击该按钮触发事件LinkButton1_Click()把网页中的session对象清空。这一处理有两个原因。首先,如果用户没有注销就离开了,下一个用户就有可能使用前一个用户未过期的session对象,这样会严重影响到安全性。另外,如果所有用户都不注销,则session对象会继续占用有效的资源直到过期。当用户数量很多的时候,就会造成网络资源的浪费。
该事件LinkButton1_Click()的代码如下:
private void LinkButton1_Click(object sender, System.EventArgs e)
{
this.Page.Session.Remove("UserID");
this.tab_login.Visible=true;
tab_logined.Visible=false;
}
4.1.2用户注册界面设计
新用户若想登陆本系统使用本系统的一些功能就必须进行用户注册,用户注册时需要输入用户名、用户密码、用户真实、用户地址和用户电子邮件等,设计如图4.5所示:
用户注册页面中的13个文本输入框分别用于输入用户的用户名、用户密码、用户真实、用户性别、生日、住址、邮编、联系电话、QQ号码、MSN、电子邮箱和个人Blog等等用户信息。注册页面还使用了5个RequiredFieldValidator非空验证控件和4个RegularExpressionValidator正则表达式控件分别验证用户的输入,非空验证控件RequiredFieldValidator1对用户ID进行非空验证、非空验证控件RequiredFieldValidator2对用户密码进行非空验证、非空验证控件RequiredFieldValidator3对用户确认密码进行非空验证,非空验证控件RequiredFieldValidator4对用户的真实进行非空验证,非空验证控件RequiredFieldValidator7对用户电子邮箱进行非空验证,控件RangeValidator2对输入的日期格式进行验证,RegularExpressionValidator2对用户输入的邮编长度进行验证,RegularExpressionValidator3对用户输入的电子邮件格式进行验证,控件CompareValidator1对用户输入的密码和确认密码的一致性进行验证[16]。
点击"下一步"按钮触发事件btn_reg_Click()。该事件提交新用户的注册信息到用户信息表中,该事件的主要代码如下:
private void btn_reg_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Class.DataAccess dataAccess=new xyl.Class.DataAccess();
//检查用户名是否存在
if(dataAccess.UserIsExists(this.txt_user_id.Text.Trim()))
{
Class.JavaScript.Alert
(this,"用户名:"+this.txt_user_id.Text+"已经存在!");
}
else
{
try
{
if(dataAccess.SaveUserInfo(this.txt_user_id.Text.Trim(),
this.txt_password.Text.Trim(),this.txt_name_desc.Text.Trim(),
this.dro_sex.SelectedValue,this.txt_birthday.Text.Trim(),
this.tx