控制器的用户登录

开发工具与关键技术:Visual Studio 2015
作者:杨镇虹
撰写时间:2019.06.01

一、控制器的用户登录
这是一个自己给的一个名称UserLogin 这是一个数据库里面的用户表PW_User 这个是页面传过来的参数pwUscr
public ActionResult UserLogin(PW_User pwUscr)
{//定义一个记录状态的变量
string strMsg = “fail”;
//获取到页面传递过来的变量
//用户名称
string strUserNuber = pwUscr.UserNuber;
//密码
string strPassword = pwUscr.Password;
//验证码
string strValidCode = Request[“validCode”];
//记住否
string strIsRember = Request[“rememberMe”];
//用户类型ID
string strUserTypeClass = Request[“UserTypeClass”];
//==判断验证码
//获取session中的验证码
string sessionValidCode = “”;//String.Empty 也代表一个空字符串
try
{//验证码
sessionValidCode = Session[“validCode”].ToString();
}
catch (Exception e)
{
Console.WriteLine(e);//无效果 只是避免e未使用的警告
}
//判断用户输入的验证和session中拿到的验证码是否一致(忽略大小写)
if (sessionValidCode.Equals(strValidCode.Trim(), //去掉验证码前后的空格Trim StringComparison.CurrentCultureIgnoreCase))//Ignore是忽略 Case 是大小
{
try //出现异常时就用try
{
//查询用户表PW_User 自定义的一个变量dbUser from 获取到填写在浏览器用户表tbUser格里面的数据是否in 跟数据库里面的myModel用户表PW_User有存在
PW_User dbUser = (from tbUser in myModel.PW_User
Where查询的条件 tbUser用户表的用户名称UserNuber 页面传递过来用户名变量strUserNuber
where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true
select tbUser).Single();//结果只能有一条数据,0条或者大于等于2条都会出现异常
//对用户输入的密码进行加密
string password = AESEncryptHelper.Encrypt(strPassword);
//判断对用户加密后的密码和数据库查询到的密码比较
if (password == dbUser.Password)
{//===验证选择的角色是否正确
Var获取到查出来等于这个列表的用户类型listUserType自己给的一个变量,from 自定义的一个用户表的名tbUser in查询到数据库myModel的用户表PW_User里面的数据 再join 自定义的一个变量用户角色明细tbUserRoleDetail in查询到数据库myModel的用户角色明细表UserRoleDetail on 自定义的用户表tbUser的用户ID UserID equals跟用户角色明细tbUserRoleDetail的用户ID UserID是否对应 join 自定义用户类型tbUserType in 查询到数据库myModel的用户类型SYS_UserType on用户角色明细tbUserRoleDetail的用户类型ID UserTypeID equals是否跟用户类型表tbUserType的用户类型ID相对应 where查询条件 用户表tbUser的用户ID等于dbUser这个的用户ID UserID &&或者 用户类型表tbUserType的类型的类typeClass等于它strUserTypeClass去掉空格Trim
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.Trim()

select new
{ 自定义的用户类型的名称.数据库里面的字段
tbUserType.UserTypeID,// 用户类型ID
tbUserType.UserType//用户类型
}).ToList();//查出多条数据转化为列表List
再if判断上面查询出来的用户类型的列表listUserType是否小于0
if (listUserType.Count > 0)
{
//====确认身份正确
//把用户数据放到session中
//获取用户类型名称等于用户类型listUserType的列表去掉空格Trim
string userTypeName = listUserType[0].UserType.Trim();
//获取用户类型ID
int userTypeId = listUserType[0].UserTypeID;

//设置这个session
Session[“UserID”] = dbUser.UserID; // 传递 UserID
Session[“UserTypeID”] = userTypeId;// 传递 UserTypeID
Session[“ServerTime”] = DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”); ;//登录时间
Session[“UserTypeClass”] = strUserTypeClass;//用户的类型 1-学生;2-教师;3-管理
//记住用户信息 使用cookie if判断 记住否strIsRember去掉空格等于true
if (strIsRember.Trim() == “true”)
{
//让浏览器记住密码 保存到用户user到cookie里面
HttpCookie cookie = new HttpCookie(“user”);
//保存到浏览7天
cookie.Expires = DateTime.Now.AddDays(7);
//记住用户名称UserNuber到cookie
cookie[“UserNuber”] = strUserNuber;
//记住密码Password到cookie里面
cookie[“Password”] = strPassword;
//用户类型的类UserTypeClass
cookie[“UserTypeClass”] = strUserTypeClass;
Response.Cookies.Add(cookie);
}else//否则
{
//忘记保存到浏览器的信息
HttpCookie cookie = new HttpCookie(“user”);
//有效期设置为昨天,浏览器会自动删除cookie
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
}
如果下面判断都对,就会弹出这个提示框来提醒用户登录成功success
strMsg = “success”;//这个代表success登录成功
}
else 否则
{//判断用户类型是否填写正确,如果填写错误就会弹出用户类型错误userTypeErro
strMsg = “userTypeErro”; }
}else//上面判断如果没有出现错误就进行下面这个判断else否则
{这个代表passwordErro密码错误
strMsg = “passwordErro”;
}
}
catch (Exception e)
{在浏览器里面填写用户登录的用户在数据库里面不存在此用户
strMsg = “userNoExsit”;//没有此用户
Console.WriteLine(e);//无效果 只是避免e未使用的警告
//throw;
}
}
else//否则
{在浏览器填写的验证码错误validCodeErro
strMsg = “validCodeErro”;//代表验证码错误
}//返回值 返回它strMsg
return Json(strMsg, JsonRequestBehavior.AllowGet);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值