21.5用户登录验证模块
21.5 用户登录验证模块
登录验证的原理很简单,具体说明如下。
(1)设计一个表单供用户输入登录数据。
(2)获取用户的登录数据后,与数据库中的合法用户数据进行比较。如果完全一致,则登录聊天系统;如果不一致,则不能登录系统。
21.5.1 用户登录表单页面
用户登录表单页面文件Login.aspx的功能是提供用户登录表单,供用户输入登录数据。其具体实现过程如下。
(1)插入1个TextBox控件,供用户输入用户名。
(2)插入2个RequiredFieldValidator控件,用于验证输入用户名的合法性。
(3)调用1个Ajax程序集中的TextBoxWatermarkExtender控件,实现用户名验证。
(4)调用2个Ajax程序集中的ValidatorCalloutExtender控件,实现用户名的多样式验证。
(5)插入1个TextBox控件,供用户输入登录密码。
(6)插入2个RequiredFieldValidator控件,用于验证输入密码的合法性。
(7)调用3个Ajax程序集中的ValidatorCalloutExtender控件,实现密码的多样式验证。
(8)调用文件Yanzhengma.aspx,实现验证码显示。
(9)插入2个Button控件,分别用于激活验证处理事件和取消输入。
21.5.2 登录验证处理页面
登录验证处理页面文件Login.aspx.cs的功能是获取登录表单数据,并将合法用户的登录信息保存到用户列表数组中。其具体实现过程如下。
(1)引入命名空间。
(2)Page_Load载入初始化。
(3)定义事件btnLogin_Click(object sender,EventArgs e)。
(4)判断输入验证码的合法性。
(5)判断登录数据是否合法。
(6)读取用户的登录信息并保存处理。
(7)重定向到系统主页。
(8)输入框清空处理。
上述操作实现的具体运行流程如图21-5所示。
图21-5 登录验证处理运行流程图
文件Login.aspx.cs的具体实现代码如下。
using ASPNETAJAXWeb.AjaxChat;
using ASPNETAJAXWeb.ValidateCode.Page;
using System.Data.SqlClient;
public partial class UserLogin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender,EventArgs e)
{
if(Session[ValidateCode.VALIDATECODEKEY] != null)
{ //验证验证码是否相等
if(tbCode.Text != Session[ValidateCode.VALIDATECODEKEY].ToString())
{
lbMessage.Text = "验证码输入错误,请重新输入";
return;
}
//判断用户的密码和名称是否正确
Chat chat = new Chat();
SqlDataReader dr = chat.GetUser(tbUsername.Text,tbPassword.Text);
if(dr == null)return;
bool isLogin = false;
if(dr.Read())
{ //读取用户的登录信息并保存
UserInfo ui = new UserInfo();
ui.UserID = Int32.Parse(dr["ID"].ToString());
ui.Username = tbUsername.Text;
//保存到Session中
Session["UserID"] = ui.UserID;
Session["Username"] = ui.Username;
//保存到全局信息中
ASP.global_asax.Users.Add(ui);
isLogin = true;
}
dr.Close();
//如果用户登录成功
if(isLogin == true)
{
Response.Redirect("~/Default.aspx");
return;
}
}
}
protected void btnReturn_Click(object sender,EventArgs e)
{ //清空各种输入框中的信息
tbUsername.Text = tbPassword.Text = tbCode.Text = string.Empty;
}
}
上一篇:21.4数据库访问层
下一篇:21.6系统主界面模块