当前位置: 首页 > news >正文

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证9)

  测试数据库中只有之前记录温湿度及烟雾值的表中数据较多,在该数据库中增加AppUser表,用于登录用户身份查询,数据库表如下所示:
在这里插入图片描述
  项目中安装SqlSugarCore包,然后修改控制器类的登录函数及分页查询数据函数,将之前函数中的固定数据修改为从数据库中查询数据,并将分页查询数据函数中返回数据集合修改为返回环境检测数据的集合,主要调整的代码如下所示。客户端页面中的JavaScript代码主要修改了数据表格的列定义,在此不在列出来。

 [HttpPost]public async Task<ApiResult> Login([FromBody]UserInfo info){try{if (_dbClient.Queryable<AppUser>().Any(r => (r.Account == info.Name) && (r.Password == info.Password))){AppUser curUser = _dbClient.Queryable<AppUser>().First(r => (r.Account == info.Name) && (r.Password == info.Password));ApiResult result = new ApiResult();result.UserName = curUser.Name;result.Msg = GetToken(info.Name);return result;}else{return new ApiResult("身份验证失败", 500, false);}}catch(Exception ex){return new ApiResult(ex.Message, 500, false);}}[Authorize]
[HttpGet]
public async Task<ApiResult> GetDataByPage(int page,int limit)
{ApiResult result = new ApiResult();result.StatusCode = 0;Records data = new Records();data.Count=_dbClient.Queryable<EnvironmentRecord>().Count();            data.Data = _dbClient.Queryable<EnvironmentRecord>().ToPageList(Convert.ToInt32(page), limit).ToList();result.Data = data;return result;
}

  页面运行效果如下所示,唯一值得说的就是token的过期时间。用户登录并跳转到main.html页面后,如果重启后台服务的话,只要token没有过期,页面就可以接着调用后台服务接口,直至token过期为止,或者用户退出登录。所以确实像网上文章中提到的风险,存储到本地存储中很容易被取到并拿做它用。
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]https://www.jianshu.com/p/a2804e72d296
[2]https://blog.csdn.net/sD7O95O/article/details/85043160
[3]https://www.cnblogs.com/qiongkangle/p/13347283.html
[4]https://www.cnblogs.com/xbhp/p/17401507.html
[5]https://www.cnblogs.com/superstar/p/16491428.html
[6]https://blog.csdn.net/weixin_44877917/article/details/140609294
[7]https://blog.csdn.net/qq_40287041/article/details/143368882

http://www.lryc.cn/news/524688.html

相关文章:

  • 缓存之美:万文详解 Caffeine 实现原理(上)
  • Spark/Kafka
  • 深入浅出:Go语言中的Unicode与字符编码详解
  • 什么是SSL及SSL的工作流程
  • .Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上)
  • AD7606, 逐次逼近型ADC以及一次被GPT坑了的过程.
  • 抬手、放手识别算法
  • 深度学习篇---AnacondaLabelImg
  • 探索云原生可观测性:技术与团队协作的深度结合
  • 解决 Django 5.1 中的 TemplateSyntaxError 错误
  • 基于SSM的自助购药小程序设计与实现(LW+源码+讲解)
  • 04JavaWeb——Maven-SpringBootWeb入门
  • 场馆预定平台高并发时间段预定实现V2
  • 如何利用边缘节点服务打造极致用户体验?
  • C语言之小型成绩管理系统
  • ASP.NET Core 中基于 Cookie 的身份鉴权实现
  • 为什么要学习C++?
  • freecad1.0的编译
  • 汇编与逆向(一)-汇编工具简介
  • .NET Framework
  • LabVIEW太赫兹二维扫描成像系统
  • 图片专栏——概念
  • Linux内存管理(Linux内存架构,malloc,slab的实现)
  • 【C++】模板(进阶)
  • Esxi下虚拟机磁盘类型厚置备改精简置备
  • Element使用表单重置如果不使用prop,重置无法生效
  • Windows FileZila Server共享电脑文件夹 映射21端口外网连接
  • MongoDB 备份与恢复综述
  • node.js 文件操作
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换