图书管理系统之登录跳转对应页面(三)

相关源码下载连接:https://download.csdn.net/download/baidu_39378193/85033291
前言:在上面篇设计数据库中还漏了一些字段,在在这里提前说明并补回来
主要添加了一个管理员的布尔类型的字段

一、验证码的绑定

1.1、调用上一篇封装在Common区域的验证码静态类

#region 调用common区域中两个方法生成图片验证码public ActionResult CreateValidImage(){// 随机生成一串验证码string ValidCode = ValidCodeUtils.GetRandomCode(4);// 将验证码通过图片的形式生成出来byte[] ValidImage = ValidCodeUtils.CreateImage(ValidCode);// 将验证码保存到session当中Session["ValidCode"] = ValidCode;// 将生成的图片通过File返回给页面return File(ValidImage, "image/jpeg");}#endregion

1.2、绑定给页面

找到验证码位置的盒子,请求验证码控制器方法

1.3、点击更换验证码
封装一个函数,点击验证码图片的时候调用

// 获取验证码function authCode() {// 点击更换验证码$("#validCodeImgU").prop("src", "CreateValidImage?t=" + new Date().getTime());}

二、跳转区域控制器的创建

区域的创建跟第一次创建一样

三、获取登录的信息

将登录身份修改为一个,将学生身份删去,如下图

1.1、获取登录的值

点击登录的时候获取到页面的值,选中管理员身份通过prop()来获取到他的选中状态,返回true和false

进行三个判断信息

使用$.post()提交方法

提交的四个参数与控制器的实体类对应,验证码的传递与控制器的字符串接收对应

在封装返回状态信息的时候有一个布尔类型的,如果登录成功就设置为true,默认是false,如果登录成功跳转到控制器返回的路径

// 点击登录获取数据传递$("#btnLogin").click(function () {// 获取学生或者管理员的权限var Administrator = $("#Administrator").prop("checked");var user_Name = $("#user_Name").val(); // 用户名var user_PassWord = $("#user_PassWord").val(); // 密码var validCodeImg = $("#validCodeImg").val(); // 验证码// console.log(user_Name, user_PassWord, validCodeImg);// 判断if (user_Name == "" || user_Name == undefined) {layer.alert("请输入用户名");return;}if (user_PassWord == "" || user_PassWord == undefined) {layer.alert("请输入密码");return;}if (validCodeImg == "" || validCodeImg == undefined || !/^\w{4}$/.test(validCodeImg)) {layer.alert("验证码由四位字符组成,请检查");return;}// 数据提交$.post("/Login/Administrator", {UserName: user_Name,PassWord: user_PassWord,validCodeImg: validCodeImg,UserRole: Administrator}, function (data) {// 返回状态信息layer.alert(data.Text);// 刷新验证码authCode();if (data.State) {// 跳转页面location.replace(data.Text);}});});

1.2、接收和验证登录信息

代码有点多,但其实是跟简单的

  1. 通过实体类接收页面传递过来的值,通过字符串接收传递过来的验证码
  2. 先进行二次判断传递的数据是否有值
  3. 获取验证码的方法,在try判断里面重新赋值一下保存在Session的验证码
  4. 将重新赋值的验证码与传入的验证码进行对比,同时同时忽略比较字符串的大小写
  5. 根据用户传递的账号信息到数据库查询,是否有这一条数据,有数据就继续否就提示用户
  6. 根据用户输入的账号作为条件去查询出当前账号的密码是否匹配输入的密码
  7. 根据用户输入的账号作为条件去查询当前账号的一个状态信息,是否为true
  8. 判断页面是否勾选了管理员登录身份,如果是就判断管理员是否,否就判断学生的身份
  9. 判断当前账号的角色权限身份为true,如果是就可以登录管理后台页面
  10. 学生登录页面也要继续判断,不然使用管理员的身份也可以登录学生的页面就不好了
  11. 如果不勾选管理员信息,也根据账号的角色权限作为条件去查询当前的账号,查询出来的账号如果登录输入的账号此账号为管理员身份
#region 登录账号public ActionResult Administrator(Admin admin,string validCodeImg) {// 返回值ReturnJson str = new ReturnJson();// 验证码赋值var seeionValidCode = "";// 判断用户名if (!string.IsNullOrEmpty(admin.UserName)){// 判断密码if (admin.PassWord != "" || admin.PassWord != null){// 获取验证码try{seeionValidCode = Session["ValidCode"].ToString(); // 获取session中的验证码}catch (Exception e){Console.Write(e);}// 判断验证码是否正确//StringComparison.InvariantCultureIgnoreCase使用区域敏感排序规则、固定区域来比较字符串,同时忽略比较字符串的大小写if (seeionValidCode.Equals(validCodeImg.Trim(), StringComparison.CurrentCultureIgnoreCase)){// 查询账号List<Admin> user_Name = myModels.Admin.Where(o => o.UserName == admin.UserName).ToList();// 判断用户账号是否符合if (user_Name.Count > 0){// 根据账号去匹配密码var possWord2 = myModels.Admin.Where(o => o.UserName == admin.UserName).Single().PassWord;// 匹配到的密码等于用户输入的密码if (possWord2 == admin.PassWord){// 根据账号查询状态信息var State2 = myModels.Admin.Where(o => o.UserName == admin.UserName).Single().Status;// 判断账号状态if (State2 == true){// 根据页面选中身份登录if (admin.UserRole == true){// 根据传入的状态查询数据var userRole2 = myModels.Admin.Where(o => o.UserRole == admin.UserRole).Single().UserName;// 根据查询出来的账号匹配当前账号是否为管理员if (userRole2 == admin.UserName){str.State = true;str.Text = "/JumpFile/Administrator/Index";}else {str.Text = "此账号不是管理员";}}else {// 管理员不勾选也会登录学生界面var userRole = myModels.Admin.Where(o => o.UserRole == admin.UserRole).Single().UserName;if (userRole == admin.UserName){str.State = true;str.Text = "/JumpFile/Borrower/Index";}else{str.Text = "此账号为管理员身份,请勾选管理员身份登录";}}}else {str.Text = "用户状态信息错误,请联系管理员";}}else {str.Text = "密码错误,请检查";}}else {str.Text = "无用户信息,请检查";}}else {str.Text = "验证码信息错误";}}else {str.Text = "请输入密码";}}else {str.Text = "请输入用户名";}return Json(str,JsonRequestBehavior.AllowGet);}#endregion

图书管理系统之登录跳转对应页面(三)相关推荐

  1. 【Swing 开发之图书管理系统】(五)管理员页面布局与用户信息页

    Swing 开发之图书管理系统(五)管理员页面布局与用户信息页 Swing 开发之图书管理系统(五)管理员页面布局与用户信息页 1.管理员页面布局 2.用户信息页 Swing 开发之图书管理系统(五) ...

  2. php未登录跳到登陆页面,vue实现未登录跳转到登录页面的方法

    环境:vue 2.9.3; webpack;vue-router 目的:实现未登录跳转 例子:直接在url地址栏输入...../home,但是这个页面要求需要登陆之后才能进入,判断的值就通过登陆之后给 ...

  3. 图书管理系统测试报告--登录功能测试篇

    目录 1.功能测试 (1)测试用例 (2)测试数据 (3)测试过程 (4)测试结果及截图 2.自动化测试 1.功能测试 (1)测试用例 ·输入正确账号和密码,点击登录,是否能显示登录成功,并转置主页面 ...

  4. C# 图书管理系统(MySQL)——属性设计(三)

    目录 1.窗体Form属性设计 2. 文本框控件:TextBox(输入用户名及密码) 3.单选按钮控件:RadioButton 4.按钮 :Button 5.下拉框:comboBox 1.窗体Form ...

  5. php和mysql实现图书管理系统_0074 实现图书管理系统的登录、员工和菜单功能

    上节课完成了图书馆管理系统的所有设计工作. 这节课开始进行代码编写,具体的编程思考细节可以参照之前编写新闻发布系统的思路. 编写共通代码 后台网页权限检查文件,check_auth.php代码如下: ...

  6. vue-router 判断是否登陆,未登录跳转登陆页面

    移动app 只需验证首页是否登陆 meta: {title: 'index',requireAuth: true } main.js中 router.beforeEach((to, from, nex ...

  7. java 注册忘记密码操作_Java实战项目(1):swing图书管理系统的登录,注册,找回密码,增删查,个人解析等...

    SQL部分: drop table yonghu, shangpin,dingdanxiangqing,sp_Type drop table shangpin select * from yonghu ...

  8. HTMl账号密码登录跳转下一个页面问题/网页输入正确的账号面膜登录下一个界面/PHP网页禁止某个链接直链访问

    <html lang="en"> <head> <meta charset="UTF-8"> <title>登录 ...

  9. 登录成功后跳回到原来页面

    应用场景:一般网页游客和登录用户看到的内容是有区别的,如果一个未登录的用户在看到登录提示后跳转到登录界面登录,那么登录成功后怎么返回到该页面呢? 写这篇博客是因为我自己把解决问题的方向想偏了,本来实现 ...

最新文章

  1. XSS学习-初出茅庐
  2. HDU 2571 命运
  3. 浏览器通知,可配合socket
  4. php设计模式课程---4、观察者模式的好处是什么
  5. js基础知识汇总13
  6. GCP Marker生成的刺点文件导入Pix4D教程
  7. 智能优化及其相关算法
  8. Delphi Sender对象的使用
  9. Zookeeper学习笔记2-------group创建、查询、删除
  10. Xshell7怎么更改字体颜色和标签颜色方法教程
  11. MFC 控件类型和状态
  12. gridView---->列标题右键菜单管理
  13. design compiler基本操作
  14. Prometheus+Alertmanager详细配置邮箱告警
  15. C#中设计器的控件事件转到逻辑代码
  16. 瑞星助手无法启动(小狮子)的解决方法
  17. 网络安全态势感知研究综述
  18. 机械波简述------说说纵波(声波是一种纵波)
  19. 意瑞线性霍尔CHA611,帮电流模组补芯
  20. 那些职场高手,都是怎么解决问题的?

热门文章

  1. TCP/IP协议类比生活案例
  2. 内部培训——规范原则与重构
  3. 将大程序缩减为小程序,数据决定程序结构
  4. 微信如何批量添加好友?
  5. 拉伸流变仪VADER 1000-丹麦RHEO FILAMENT
  6. js进入页面后自动触发点击事件
  7. NOJ1076 机器狗组装费用 贪心
  8. 博主已开启评论精选什么意思_win10拨号上网不能开启移动热点 解决方案
  9. CentOS 7安装XWiki
  10. 如何实现一个安卓群控系统