菜鸟笔记——MVC登录原理

登录页面的本质是通过控制器方法将页面输入的账户和密码(加密后的)与数据库内的账户和密码(已加密的)进行比对,无误后才能登录,在有些账户登录时还需要验证码与用户身份,验证码是一种随机字符编码用来防止自动登录,而用户身份往往是代表着一些权限
登录往往是需验证的,而验证登录的顺序可以是:用户名->密码->用户身份>验证码-,建议使用post提交方式;
控制器代码:

string jobNumber = "";
string password = "";
bool isRember = false;
//读取浏览器请求传递的cookie
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["user"];
if (cookie != null)//判断cookie是否存在{
    if (cookie["jobNumber"] != null)
    {
      //对字符串进行 URL 解码并返回已解码的字符串
      jobNumber = System.Web.HttpContext.Current.Server.UrlDecode(cookie["jobNumber"]);
     }
     if (cookie["Password"] != null)
     {
             password = System.Web.HttpContext.Current.Server.UrlDecode(cookie["password"]);
      }
     isRember = true;
}

视图js代码:

  $(document).ready(function () { 
//匿名 
            $("#btnSubmit").click(function () {
                //window.location.href = "/Main/Main";
                var jobNumber = $("#JobNumber").val();//获取工号
                var userPassword = $("#userPassword").val();//获取用户输入密码
                var validCode = $("#fmLogin input[name='validCode']").val();//获取验证码
                var rememberMe = $("#fmLogin input[name='rememberMe']").is(":checked");//是否记住
                //console.log(jobNumber);
                //通过if语句判断用户是否输入完整
                //&& validCode != null && validCode != ""
                if (jobNumber != null && jobNumber != ""
                    && userPassword != null && userPassword != ""
                    ) {
                    //异步提交
                    $.post("@Url.Content("~/Main/UserLogin")",
                        {
                            jobNumber: jobNumber,
                            password: userPassword,
                            validCode: validCode,
                            rememberMe: rememberMe
                        }, function (msg) {
                            if (msg.State == true) {
                                window.location.replace("/Main/Main");
                            } else {
                                alert(msg.Text);
                            }
                        });
                } else {
                    alert("请将数据填写完整");
                }
            });
            //快捷键登录
            $("body").keyup(function (e) {
                if (e.keyCode == 13) {
                    //console.log(123);
                    $("#btnSubmit").click();
                }
            });
        });

我们先从视图获取数据进行用户名的认证根据页面输入的用户名到数据库查询,正确则返回唯一值,否则返回错误值,用户名的认证无误之后,
接下来是密码的验证, 数据库中保存的密码是加密之后的密码,因此比较之前需要将输入的密码先进行加密再来进行对比
验证码的验证是将保存在session中的验证码转换为字符串保存到变量中,再将生成的验证码和输入的验证码进行不区分大小写的比较 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值