2.7 后台登录模块设计
2.7.1 后台登录模块概述
在网站前台页面底部设置了进入后台登录页的“后台入口”。后台登录页面主要是用来对进入网站后台的用户进行安全性检查,以防止非法用户进入该系统的后台。同时使用了验证码技术,防止使用注册机恶意登录本站后台。后台登录页面运行效果如图2.27所示。
图2.27 后台登录页面运行效果
2.7.2 后台登录模块技术分析
在后台登录模块中主要应用了验证码技术。
目前,网站为了防止用户利用机器人自动注册、登录、灌水,采用了验证码技术。所谓验证码,就是一串随机产生的数字与英文字母组合成的4位字符串。本网站验证码如图2.27所示。
在实现的过程中,将数字、英文字母存储到字符串变量strchar中,使用String.Split方法以指定的分隔符(逗号)分离字符串strchar,将返回的字符串数组存储到字符串数组变量VcArray中,最后使用随机类Random成员方法Next(int t = rand.Next(61)),根据返回值t来获取字符串数组VcArray中的字符。详细代码如下:
例程24 代码位置:资源包\TM\02\B2C\B2C\App_Code\CommonClass.cs
注意
刚刚讲解的验证码,只是为读者起到了一个抛砖引玉的作用。本网站使用的验证码很容易被机器辨别出来,解决该问题的方法为:将验证码生成到图片里,然后在图片上加一些干扰素,在这样的情况下,人通过肉眼难以辨别,那么机器将更难以识别。由于篇幅所限,关于这方面的技术这里不再深入讲解,读者可以上网查阅。
2.7.3 后台登录模块实现过程
本模块使用的数据表:tb_Admin
1. 设计步骤
(1)在该网站中的Manage文件夹下创建一个Web窗体,将其命名为Login.aspx。
(2)在Login.aspx页中通过使用bootstrap+div为整个页面进行布局,然后从“工具箱”→“标准”选项卡中拖放3个TextBox控件、一个Label控件和两个Button按钮控件。Login.aspx页中各个控件的属性设置及其用途如表2.5所示。
表2.5 Login.aspx页中各个控件的属性设置及其用途
2. 实现代码
在该页的后台Login.aspx.cs页中编写代码前,首先需要定义CommonClass类对象和DBClass类对象,以便在编写代码时,调用该类中的方法。代码如下:
例程25 代码位置:资源包\TM\02\B2C\B2C\Manage\Login.aspx
CommonClass ccObj = new CommonClass(); DBClass dbObj=new DBClass();
在Page_Load事件中,调用CommonClass类的RandomNum方法,显示随机验证码。代码如下:
例程26 代码位置:资源包\TM\02\B2C\B2C\Manage\Login.aspx
当用户输入完登录信息时,可以单击“登录”按钮,在该按钮的Click事件下,首先判断用户是否输入了合法的信息,如果输入的信息合法,则进入网站后台,否则弹出对话框,提示用户重新输入。代码如下:
例程27 代码位置:资源包\TM\02\B2C\B2C\Manage\Login.aspx
代码贴士
❶GetDataSetStr:调用公共类中的GetDataSetStr方法,执行SQL语句,返回一个数据源的数据表。
❷dsTable:该对象为DataTable的一个实例对象,其数据为数据源的数据表tbAdmin。
❸MessageBox:调用公共类中的MessageBox方法,返回一个对话框信息。