验证登陆

时间:2024-03-22 16:28:42

开发工具与关键技术:VS
作者:胡名权
撰写时间:2019年4月17日

下面我们一起来谈论一下登录需要考虑的一些问题:
我们都知道,一般我们登录一个页面需要用到账号,密码,验证码这些东西是吗?当我们自己来创建的时候又该怎么去写呢。下面让我们一起来探讨吧

首先我们得写一个方法是不是,给方法命名后,先定义一个记录状态的变量
string strMsg = “fail”;
然后获取页面传递的变量
验证登陆

这些将会是我们在登录时需要填写的数据,接下来是

if (strUserNuber != "" && strPassword != "" & strValidCode != "" & strIsRember != "" & strUserTypeClass != "") 

第一步:判断是否获取到验证码
获取出session存放的验证码,如若没有检测到有验证码,那么我们页面就弹出一个警示框提示用户,“请把页面数据填写完整!”
string sessionValiCode = “”;如果验证码的值为空就传入字符串
sessionValiCode = Session[“validCode”].ToString();
否则弹出警示框,提示用户。
当填入验证码以后判断和session中的验证码是否一致,忽略大小写,
如果不匹配,则弹出“验证码不匹配”来提示用户。
第二步、判断账号是否存在,去数据库进行对比

PW_User dbUser = (from tbUser in myEntities.PW_User
                  where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true
                  select tbUser).Single();

如果发现并没有这一账号,就提示用户“当前输入的账号不存在!”
第三步:对页面传来的密码进行AES加密
string password = AESEncryptHelper.Encrypt(strPassword);
第四步:判断账号和选择的权限跟注册账号的账号权限是否对应
strUserTypeClass = strUserTypeClass.Trim();去空格
验证登陆
这里用到的是根据UserNuber 查询用户
Linq单挑查询的写法
其中的where orderby select select new接自定义表名
.single()查询单条数据,当没有数据或者多条数据时会触发异常
.ToList()查询多条数据并转为List
.Count()查询数据总数

要是判断账号跟选择的权限跟注册账号权限并不对应,就告诉用户“您输入的密码错误!”

接着设置session机制
用户身份验证完成 开始处理登录信息
获取用户类型名称
string userTypeName = listUserType[0].UserType.Trim();
获取用户类型ID
int userTypeId = listUserType[0].UserTypeID;
验证登陆

把用户输入的值传递给session进行核对,从数据库提取数据,来进行判断,然后把这些变量放在session里面。
那么把这些数据跟数据库进行对比以后,符合,我们就提示用户,“登录成功”。
设置cookie
判断是否已经记住,传过来的是true,则执行:
验证登陆
否则删除cookie

HttpCookie cookie = new HttpCookie("user");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);

最后我们把获取到的变量strMsg,给传输回去,那么这个方法就写完了。
那么我们就要知道,登录一个页面,我们会用到账号,密码,验证码,然后进行判断,核对,只有在数据全都正确的情况下才能登录成功。所以在写这些判断语句的时候不能粗心,每一个判断要有相对应的不成立的提示用户信息,并且要注意代码的书写正确否。