页面登录验证码生成

public ActionResult Login()

        {

            #region 读取cookie中的数据 登录页面数据回填

            string UserNuber = "";

            string Password = "";

            string UserTypeClass = "";

            bool isRember = false;

            //读取浏览器请求传递的cookie

            HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["user"];

            if (cookie != null)//判断是否存在cookie

            {

                if (cookie["UserNuber"] != null)

                {

                    UserNuber = HttpUtility.UrlDecode(cookie["UserNuber"], Encoding.GetEncoding("UTF-8"));

                }

                if (cookie["Password"] != null)

                {

                    Password = System.Web.HttpContext.Current.Server.UrlDecode(cookie["UserTypeClass"]);

                }

                isRember = true;

            }

            #endregion

            ViewBag.UserNuber = UserNuber;

            ViewBag.Password = Password;

            ViewBag.UserTypeClass = UserTypeClass;

            ViewBag.isRember = isRember;

            return View();

        }

/// <summary>

        /// 验证码生成

        /// </summary>

        /// <returns></returns>

        public ActionResult ValidCode()

        {

            //生成一个随机字符串 验证码

            string strRandom = ValidCodeUtils.GetRandomCode(5);

            //将验证码存入Session会话

            Session["validCode"] = strRandom;

            //byte[] 根据验证码产生图片

            byte[] imgByte = ValidCodeUtils.CreateImage(strRandom);

            //返回图片信息

            return File(imgByte, @"image/jpeg");

        }

/// <summary>

        /// 登录验证

        /// </summary>

        /// <returns></returns>

        public ActionResult UserLogin()

        {

            ReturnJson msg = new ReturnJson();

            //获取页面传递的数据

            string strUserNuber = Request["UserNuber"].Trim();//用户名

            string strPassword = Request["Password"].Trim();//密码

            string strValidCode = Request["validCode"].Trim();//验证码

            string strIsRember = Request["rememberMe"].Trim();//记住否

            string strUserTypeClass = Request["UserTypeClass"].Trim();//用户类型id

            //获取存放在Session中的验证码

            string sessionValiCode = "";

            try

            {

                sessionValiCode = Session["validCode"].ToString();

            }

            catch (Exception e)

            {

                Console.WriteLine(e);

                msg.Text = "验证码丢失!请刷新验证码,重新登录验证";

                return Json(msg, JsonRequestBehavior.AllowGet);

            }

            //判断填入的验证和session中的验证码是否一致

            if (sessionValiCode.Equals(strValidCode.Trim(), StringComparison.InvariantCultureIgnoreCase))

            {

                try

                {

                    PW_User dbUser = (from tbUser in myModel.PW_User

                                      where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true

                                      select tbUser).Single();//单条书据,当没有数据或者有多条数据时会触发异常

                                                              //将用户输入的密码进行AES265后与数据库中的密码对比

                    string password = AESEncryptHelper.Encrypt(strPassword);

                    if (dbUser.Password.Equals(password))

                    {

                        var listUserType = (from tbUser in myModel.PW_User

                                            join tbUserRoleDetail in myModel.PW_UserRoleDetail on tbUser.UserID equals tbUserRoleDetail.UserID

                                            join tbUserType in myModel.SYS_UserType on tbUserRoleDetail.UserTypeID equals tbUserType.UserTypeID

                                            where tbUser.UserID == dbUser.UserID && tbUserType.typeClass == strUserTypeClass

                                            select new

                                            {

                                                tbUserType.UserTypeID,

                                                tbUserType.UserType

                                            }).ToList();

                        if (listUserType.Count > 0)

                        {

                            //用户身份证验证完成 开始处理登录信息

                            //获取用户类型名称

                            Session["UserID"] = dbUser.UserID;// 传递 UserID   

                            Session["UserTypeID"] = listUserType[0].UserTypeID;// 传递 UserTypeID

                            Session["ServerTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//登录时间

                            Session["UserTypeClass"] = strUserTypeClass;//用户的类型 1-学生;2-教师;3-管理

                            //如果需要记住密码 strIsRember =="true "设置cookie

                            if (strIsRember == "true")

                            {

                                //记住密码 保存cookie

                                HttpCookie cookie = new HttpCookie("user");

                                cookie.Expires = DateTime.Now.AddDays(7);//保存7天

                                //HttpUtility 提供在处理 Web 请求时用于编码和解码 URL 的方法

                                //UrlEncode()使用指定的编码对象,对 URL 字符串进行编码

                                cookie["UserNuber"] = HttpUtility.UrlEncode(strUserNuber, Encoding.GetEncoding("UTF-8"));//用户名

                                cookie["Password"] = strPassword;//密码

                                cookie["UserTypeClass"] = strUserTypeClass;//用户类型

                                Response.Cookies.Add(cookie);

                            }

                            else

                            {

                                //删除cookie

                                HttpCookie cookie = new HttpCookie("user");

                                cookie.Expires = DateTime.Now.AddDays(-1);

                                Response.Cookies.Add(cookie);

                            }

                            msg.State = true;

                            msg.Text = "用户登录成功";

                        }

                        else

                        {

                            msg.Text = "用户类型错误";

                        }

                    }

                    else

                    {

                        msg.Text = "用户密码错误,请重新输入";

                    }

                }

                catch (Exception e)

                {

                    Console.WriteLine(e);

                    msg.Text = "此用户不存在,请重新输入";

                }

            }

            else

            {

                msg.Text = "验证码错误,请重新登录";

            }

            return Json(msg, JsonRequestBehavior.AllowGet);

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书199

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值