12asp.net=============用户登录系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12asp.net=============用户登录系统相关的知识,希望对你有一定的参考价值。

  1  public string ErrorMsg { get; set; }
  2         protected void Page_Load(object sender, EventArgs e)
  3         {
  4             if (IsPostBack)
  5             {
  6                 //判断用户名与密码之前先判断验证码是否正确。
  7                 if (CheckValidateCode())
  8                 {
  9                     CheckUserInfo();//对用户名密码进行校验
 10                 }
 11                 else
 12                 {
 13                     ErrorMsg = "验证码错误!!";
 14                 }
 15             }
 16             else
 17             {
 18                 //判断Cookie中是否有值。如果有值,并且值是正确的,那么跳转,不需要用户在输入用户名和密码了。如果Cookie没有值,或者值是错误的,那么继续呈现登录表单,让用户输入用户名密码进行登录。
 19                 CheckCookieInfo();
 20 
 21             }
 22         }
 23 
 24         /// <summary>
 25         /// 对Cookie的信息进行校验
 26         /// </summary>
 27         private void CheckCookieInfo()
 28         {
 29             if (Request.Cookies["cp1"] != null && Request.Cookies["cp2"] != null)
 30             {
 31                 string userName = Request.Cookies["cp1"].Value;
 32                 string userPwd = Request.Cookies["cp2"].Value;
 33                 BLL.UserInfoService UserInfoService = new BLL.UserInfoService();
 34                 UserInfo userInfo=UserInfoService.GetUserInfoModel(userName);
 35                 if (userInfo != null)//根据Cookie中存储的用户名找用户,如果不为空,表示Cookie中存储的用户名是否正确的。
 36                 {
 37                     //判断该用户数据库中存储的密码是否与Cookie中存储的密码是否一致。注意:在注册时,一定要将用户输入的密码加密以后在存储到数据库中。假如,用户注册时的密码已经两次MD5运算了,那么这里直接比较就OK了。
 38                     if (userPwd == Common.WebCommon.GetMd5String(Common.WebCommon.GetMd5String(userInfo.UserPass)))
 39                     {
 40                         Session["userInfo"] = userInfo;
 41                         Response.Redirect("UserList.aspx");
 42                     }
 43 
 44                 }
 45                 //如果Cookie中是有值的,但是Cookie存储的用户名或密码不正确,表示用户名和密码被篡改了,那么只能继续出现登录页面。那么该 cOOKIE也没有必要存在了。
 46                 Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1);
 47                 Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1);
 48             }
 49         }
 50 
 51         /// <summary>
 52         /// 校验用户的用户名和密码是否正确
 53         /// </summary>
 54         private void CheckUserInfo()
 55         {
 56             string userName = Request.Form["txtClientID"];
 57             string userPwd = Request.Form["txtPassword"];
 58             BLL.UserInfoService UserInfoService = new BLL.UserInfoService();
 59             string msg = string.Empty;
 60             UserInfo userInfo=null;
 61             if (UserInfoService.CheckLoginUserInfo(userName, userPwd, out msg, out userInfo))
 62             {
 63                 //判断用户是否选择了"自动登录"
 64                 if (!string.IsNullOrEmpty(Request.Form["autoLogin"]))//如果表单中有多个CheckBox,只会将选中的value提交到服务端
 65                 {
 66                     HttpCookie cookie1 = new HttpCookie("cp1",userName);
 67                     HttpCookie cookie2 = new HttpCookie("cp2", Common.WebCommon.GetMd5String(Common.WebCommon.GetMd5String(userPwd)));
 68                     cookie1.Expires = DateTime.Now.AddDays(3);
 69                     cookie2.Expires = DateTime.Now.AddDays(3);
 70                     Response.Cookies.Add(cookie1);
 71                     Response.Cookies.Add(cookie2);
 72                 }
 73 
 74                 //如果上面的条件成立,表示用户输入的是正确的用户名和密码.
 75                Session["userInfo"] = userInfo;
 76                 
 77                 Response.Redirect("UserList.aspx");
 78             }
 79             else
 80             {
 81                 ErrorMsg = msg;
 82             }
 83         }
 84 
 85         #region 验证码进行校验
 86         private bool CheckValidateCode()
 87         {
 88             //注意:使用Session时先判断值是否为空.
 89             bool isSucess = false;
 90             if (Session["code"] != null)
 91             {
 92                 string txtCode = Request.Form["txtCode"];
 93                 string sysCode = Session["code"].ToString();
 94                 if (sysCode.Equals(txtCode, StringComparison.InvariantCultureIgnoreCase))
 95                 {
 96                     Session["code"] = null;
 97                     isSucess = true;
 98                 }
 99             }
100             return isSucess;
101         }
102 
103         #endregion
104     }
1   context.Response.ContentType = "text/plain";
2             Common.ValidateCode validateCode = new Common.ValidateCode();
3             string code=validateCode.CreateValidateCode(4);
4             context.Session["code"] = code;//注意:在一般处理程序中使用Session必须要实现System.Web.SessionState.IRequiresSessionState接口.
5             validateCode.CreateValidateGraphic(code, context);

 

以上是关于12asp.net=============用户登录系统的主要内容,如果未能解决你的问题,请参考以下文章

关于ASP.NET MVC的权限认证的一些总结

12asp.net=============用户登录系统

WEBapi如何 去除 ASP.NET_SessionId 这个返回的Cookies啊?

ASP.NET 身份检查用户角色不起作用

如何防止在asp.net中注册用户重定向

Asp.net 身份额外的用户信息,如电子邮件等