asp.net core weapi 结合identity完成登录注册

1.安装所需要的nuget包

    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.24" /><PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.24" /><PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.24" /><PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.24">

2.注入sqlserver数据库服务完成identity数据库的迁移

  "ConnectionStrings": {"defaultsql": "server=.;uid=sa;pwd=peng@123;database=ide"}
     builder.Services.AddDbContext<IdentityDbContext>(p =>{p.UseSqlServer(builder.Configuration.GetConnectionString("defaultsql"), b => b.MigrationsAssembly("Log4NetTest"));});

3.在程序包管理控制台执行下面依次命令,完成用户权限管理表的迁移

add-migration init 
update-datebase

执行完后,数据库就多了下面的表
在这里插入图片描述
4.创建一个用户账号的类用于登录和注册

 public class account{public string usename { get; set; }public string password { get; set; }}

5.注入identity服务

 builder.Services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<IdentityDbContext>();

6.注册

 private SignInManager<IdentityUser> _signInManager;private UserManager<IdentityUser> _userManager;public WeatherForecastController( SignInManager<IdentityUser> signInManager){_signInManager = signInManager;_userManager = userManager;}/// <summary>/// 注册/// </summary>/// <param name="usename"></param>/// <param name="pwd"></param>[HttpPost]public async Task<string> Register(string usename, string pwd){IdentityUser user = new IdentityUser(){UserName = usename};var result = await _userManager.CreateAsync(user, pwd);if (result.Succeeded){return "添加成功";}return "失败";}

执行swagger查询数据库,添加了一条数据(表示注入成功)
在这里插入图片描述

6.登录

        /// <summary>////// 登录/// </summary>/// <param name="usename"></param>/// <param name="pwd"></param>[HttpPost]public async Task<string> Login(string usename, string pwd){var user = await _userManager.FindByNameAsync(usename);if (user != null){var re = await _signInManager.PasswordSignInAsync(user, pwd, false, false);if (re.Succeeded){return "登录成功";}return "登录失败";}return "登录失败";}

使用刚才注册的账号,在swagger中调用Login方法,返回登录成功。
补充:代码中使用了微软默认的策略,比如密码的长度限制和复杂度,尝试密码失败次数等。可以根据自己的需求进行更改

 builder.Services.Configure<IdentityOptions>(options =>{// 配置密码要求options.Password.RequireDigit = true;//数字options.Password.RequireLowercase = true;//小写字母options.Password.RequireUppercase = true;//大写字母options.Password.RequireNonAlphanumeric = true;//特殊字符options.Password.RequiredLength = 8;//密码长度// 配置用户锁定选项options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);//锁定时间options.Lockout.MaxFailedAccessAttempts = 5;//失败次数options.Lockout.AllowedForNewUsers = true;// 配置用户登录选项options.SignIn.RequireConfirmedEmail = false;options.SignIn.RequireConfirmedPhoneNumber = false;});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法--数据结构

这里写目录标题 本节内容链表与邻接表链表主要思想链表操作初始化在head结点后面插入普通插入删除操作 例子 双链表&#xff08;双向循环链表&#xff09;主要思想操作初始化双向插入删除第k个点 邻接表主要思想 栈和队列栈主要思想主要操作 队列主要思想操作 单调栈与单调队列…

通用工作站设计方案 :807-ORI-S3R500 -多路PCIe3.0的单CPU通用工作站

ORI-S3R500 -多路PCIe3.0的单CPU通用工作站 (研华工业计算机IPC-610&#xff0c;IPC940 升级款) 一、机箱功能和技术指标&#xff1a; 系统 系统型号 ORI-SR500 主板支持 EEB(12*13)/CEB(12*10.5)/ATX(12*9.6)/Mi cro ATX 前置硬盘 最大支持2个3.5寸1个2.5寸SATA …

驱动基石之_tasklet中断下半部_工作队列_中断线程化处理

tasklet中断下半部 linux的中断分为两个部分&#xff1a; 1.中断上半部&#xff1a;在中断上半部期间&#xff0c;不允许被其他中断打断&#xff0c;直到中断上半部的服务函数执行完。 2.中断下半部&#xff1a;中断下半部&#xff0c;在执行中断下半部服务函数的期间&#xf…

10 个适用于 Windows 的最佳 PDF 编辑器,用于轻松编辑 PDF 文件

PDF 是当今最流行的文件格式之一。Adobe 于 1993 年开发了 PDF 文件格式。PDF&#xff08;便携式文档格式&#xff09;主要用于存储复杂的文本文档和电子书。PDF 文件包含固定的布局属性&#xff0c;并且可以存储大量文本和图形。PDF 文件格式主要用于分发大型文档。 使用 PDF…

【中间件篇-Redis缓存数据库03】Redis高级特性和应用(发布 订阅、Stream)

Redis高级特性和应用(发布 订阅、Stream) 发布和订阅 Redis提供了基于“发布/订阅”模式的消息机制&#xff0c;此种模式下&#xff0c;消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道( channel)发布消息&#xff0c;订阅该频道的每个客户端都可以收到该消息。 …

asp.net校园招聘管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 校园招聘管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 应用技术&#xff1a;asp.net c#s…

HackTheBox-Starting Point--Tier 2---Base

文章目录 一 题目二 过程记录2.1 打点2.2 权限获取2.3 横向移动2.4 权限提升 一 题目 Tags Web、Vulnerability Assessment、Custom Applications、Source Code Analysis、Authentication、Apache、PHP、Reconnaissance、Web Site Structure Discovery、SUDO Exploitation、Au…

XOR Construction

思路&#xff1a; 通过题目可以得出结论 b1^b2a1 b2^b3a2 ....... bn-1^bnan-1 所以就可以得出 (b1^b2)^(b2^b3)a1^a2 b1^b3a1^a2 有因为当确定一个数的时候就可以通过异或得到其他所有的数&#xff0c;且题目所求的是一个n-1的全排列 那么求出a的前缀异或和arr之后…

原型制作神器ProtoPie的使用Unity与网页跨端交互

什么是ProtoPie&#xff1f; ProtoPie是一款面向设计师的软件原型设计工具&#xff0c;例如制作App界面交互展示&#xff0c;制作好的原型可以一键发布到Web服务器&#xff0c;就可以浏览器访问。由于其内置了大量常用交互类型&#xff0c;以及"程序化"模块&#xf…

【Redis】掌握篇--Redis与SSM进行整合

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Redis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Redis与SSM的整合 1.添加Redis依赖 …

Scala爬虫实战:采集网易云音乐热门歌单数据

导言 网易云音乐是一个备受欢迎的音乐平台&#xff0c;汇集了丰富的音乐资源和热门歌单。这些歌单涵盖了各种音乐风格和主题&#xff0c;为音乐爱好者提供了一个探索和分享音乐的平台。然而&#xff0c;有时我们可能需要从网易云音乐上获取歌单数据&#xff0c;以进行音乐推荐…

vscode文件跳转(vue项目)

在 .vue 文件中&#xff0c;点击组件名打开 方式1&#xff1a; 在 vue 组件名上&#xff0c;桉住ctrl 鼠标左键 // 重新打开一个tab 方式2&#xff1a; 在 vue 组件名上&#xff0c;桉住ctrl shift 鼠标左键 // 在右侧拆分&#xff0c;并打开一个tab .vue文件的跳转 按住 …

Python TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍&#xff1a;WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #python通过缩进来表示代码块&#xff0c;不可以随意更改每行前面的空白&#xff0c;否则程序会运行错误&#xff01;&#xff01;&#xff01;如果缩进不…

MATLAB|风玫瑰图

目录 扫一扫关注公众号 效果图 粉丝给的图&#xff1a; 复刻的图&#xff1a; 其他样式效果&#xff1a; 数据 绘图教程 绘制左边Y轴 绘制主、次网格和主、次刻度的极坐标区域。 添加刮风数据&#xff0c;添加数据和颜色、图列大小映射关系。 颜色条绘制​​​​​​…

虹科示波器 | 汽车免拆检测 | 2017款路虎发现车行驶中发动机抖动且加速无力

一、故障现象 一辆2017款路虎发现车&#xff0c;搭载3.0L发动机&#xff0c;累计行驶里程约为3.8万km。车主反映&#xff0c;车辆在行驶过程中突然出现发动机抖动且加速无力的现象&#xff0c;于是请求拖车救援。 二、故障诊断 拖车到店后首先试车&#xff0c;发动机怠速轻微抖…

【学习笔记】MySQL死锁及热点行问题

目录 案例优化思路死锁的一些记录笔记热点行问题 本文记录下关于MySQL优化的学习和一点点思考。 案例 一个并发比较大的下单接口&#xff1b; 包括 step1 扣减商品库存step2 生成订单数据step3 记录操作记录 伪代码如下&#xff0c;底层使用的是MySQL数据库&#xff0c;单体服务…

Linux应用开发基础知识——文件IO操作(三)

前言&#xff1a; 在 Linux 系统中&#xff0c;一切都是“文件”&#xff1a;普通文件、驱动程序、网络通信等等。 所有的操作&#xff0c;都是通过“文件 IO”来操作的。所以&#xff0c;很有必要掌握文件操作的常用接口。 目录 一、文件IO 1.什么是文件&#xff1a; 2.怎么…

【Android】画面卡顿优化列表流畅度一

卡顿渲染耗时如图&#xff1a; 卡顿表现有如下几个方面&#xff1a; 网络图片渲染耗时大上下滑动反应慢&#xff0c;甚至画面不动新增一页数据加载渲染时耗时比较大&#xff0c;上下滑动几乎没有反应&#xff0c;画面停止没有交互响应 背景 实际上这套数据加载逻辑已经运行…

绝对力作:解锁string的所有关键接口,万字深度解析!

W...Y的主页 &#x1f60a; &#x1f354;前言&#xff1a; 通过博主的上篇文章&#xff0c;我相信大家已经认识了STL并且已经迫不及待想学习了&#xff0c;现在我们就走近STL的第一种类——string。 目录 为什么学习string类&#xff1f; C语言中的字符串 标准库中的str…

【机器学习】梯度下降预测波士顿房价

文章目录 前言一、数据集介绍二、预测房价代码1.引入库2.数据3.梯度下降 总结 前言 梯度下降算法学习。 一、数据集介绍 波士顿房价数据集&#xff1a;波士顿房价数据集&#xff0c;用于线性回归预测 二、预测房价代码 1.引入库 from sklearn.linear_model import Linear…