会员管理模块 - 会员登录功能(简单版本)
实现简单的会员登录过程,保存在Session中,通过username和password来核对数据库内是否存在此用户,如果存在切换出用户管理界面,如果不存在提示并且跳转到注册页面。
界面设计如下:
HTML代码:
1 <form id="form1" runat="server"> 2 <div> 3 <asp:Panel ID="Panel1" runat="server"> 4 <table align="center" cellpadding="0" cellspacing="0" width="100%"> 5 <tr> 6 <td style="width: 303px"> 7 用户名:</td> 8 <td> 9 <asp:TextBox ID="txtMemberName" runat="server"></asp:TextBox> 10 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 11 ErrorMessage="*" ControlToValidate="txtMemberName"></asp:RequiredFieldValidator> 12 </td> 13 </tr> 14 <tr> 15 <td style="width: 303px"> 16 密码:</td> 17 <td> 18 <asp:TextBox ID="txtMemberPass" runat="server" TextMode="Password"></asp:TextBox> 19 <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 20 ErrorMessage="*" ControlToValidate="txtMemberPass"></asp:RequiredFieldValidator> 21 </td> 22 </tr> 23 <tr> 24 <td style="width: 303px"> 25 登录保留</td> 26 <td> 27 <asp:DropDownList ID="ddlKeeplogin" runat="server"> 28 <asp:ListItem Value="0">不保留</asp:ListItem> 29 <asp:ListItem Value="1">保留一天</asp:ListItem> 30 <asp:ListItem Value="2">保留一周</asp:ListItem> 31 <asp:ListItem Value="3">保留一月</asp:ListItem> 32 <asp:ListItem Value="4">保留一年</asp:ListItem> 33 </asp:DropDownList> 34 </td> 35 </tr> 36 <tr> 37 <td style="width: 303px"> 38 </td> 39 <td> 40 </td> 41 </tr> 42 <tr> 43 <td colspan="2" style="text-align: center"> 44 <asp:Button ID="btnLogin" runat="server" Text="登录" onclick="btnLogin_Click" /> 45 46 <asp:Button ID="btnRegister" runat="server" Text="注册" /> 47 </td> 48 </tr> 49 </table> 50 </asp:Panel> 51 </div> 52 <asp:Panel ID="Panel2" runat="server" Visible="false"> 53 <table align="center" cellpadding="0" cellspacing="0" style="width: 50%"> 54 <tr> 55 <td> 56 </td> 57 </tr> 58 <tr> 59 <td style="text-align: center"> 60 您好, <asp:Label ID="lblMemberName" runat="server" Text="Label"></asp:Label> 61 </td> 62 </tr> 63 <tr> 64 <td style="text-align: center"> 65 进入管理</td> 66 </tr> 67 <tr> 68 <td style="text-align: center"> 69 <a href="MemberModify.aspx">修改资料</a></td> 70 </tr> 71 <tr> 72 <td style="text-align: center"> 73 <asp:LinkButton ID="lbtnExit" runat="server" onclick="lbtnExit_Click">退出登录</asp:LinkButton> 74 </td> 75 </tr> 76 </table> 77 </asp:Panel> 78 </form>
CS代码如下:
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (Session["userName"] != null) 4 { 5 Panel1.Visible = false; 6 Panel2.Visible = true; 7 this.lblMemberName.Text = Session["userName"].ToString(); 8 } 9 } 10 protected void btnLogin_Click(object sender, EventArgs e) 11 { 12 string username = txtMemberName.Text; 13 string password = txtMemberPass.Text; 14 //调用业务逻辑层的验证方法 15 MemberBLL memsystem = new MemberBLL(); 16 if (memsystem.Validate(username, password)) 17 { 18 //切换不同panel的显示 19 Panel1.Visible = false; 20 Panel2.Visible = true; 21 this.lblMemberName.Text = username; 22 //缓存当前登录用户的用户名 23 Session["userName"] = username; 24 } 25 else 26 { 27 //验证错误后的提示 28 Response.Write("<br/><font size='2'>用户名或密码错误,<a href='login.aspx'>返回</a></font>"); 29 Response.End(); 30 } 31 } 32 protected void lbtnExit_Click(object sender, EventArgs e) 33 { 34 Session.Remove("userName"); 35 Response.Redirect("login.aspx"); 36 }
BLL代码:
1 /// <summary> 2 /// 判断登录是否成功 3 /// </summary> 4 /// <param name="userName">用户名</param> 5 /// <param name="password">密码</param> 6 /// <returns>判断登录是否成功</returns> 7 public bool Validate(string userName, string password) 8 { 9 return new MemberDAL().Validate(userName, password); 10 }
DAL代码:
1 /// <summary> 2 /// 判断登录名是否正确 3 /// </summary> 4 /// <param name="userName">用户名</param> 5 /// <param name="password">密码</param> 6 /// <returns>判断是否成功</returns> 7 public bool Validate(string userName, string password) 8 { 9 DataClassesDataContext db = new DataClassesDataContext(); 10 bool result = false; 11 try 12 { 13 Member member = db.Member.Where(m => m.MemberName == userName && m.MemberPass == password).First(); 14 result = true; 15 } 16 catch 17 { 18 result = false; 19 } 20 return result; 21 }