1.在项目的nuget中安装4 个库。
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.AspNetCore.Authentication.JwtBearer
2.配置appsettings.json
3.新建auth文件夹
4.我们将在 Auth 文件夹下添加所有与身份认证相关的类
添加 ApplicationDbContext
创建一个静态类 UserRoles,其中添加了两个常量值 Admin 和 User 作为角色。您可以根据需要添加任意数量的角色。
创建类 RegisterModel, 新用户注册时使用。
创建类 LoginModel 用于用户登录。
我们可以创建一个 Response 类,用于在用户注册和用户登录后返回响应值。如果请求失败,它也会返回错误消息。
5.我们可以在 Controllers 文件夹中创建一个 API 控制器 AuthenticateController 并添加以下代码。
我们在控制器类中添加了三个方法 login、register 和 register-admin``。register 和 register-admin 几乎相同,
但 register-admin 方法将用于创建具有 Admin 角色的用户。在 login 方法中,我们在成功登录后返回了一个 JWT token。
6.在 Program 类中定义所有依赖注入和其他配置。
在 .NET 6.0 中,微软删除了 Startup 类(注:您可以恢复继续使用这种方式),只保留了 Program 类。
我们必须在 Program 类中定义所有依赖注入和其他配置。
7.迁移数据
我们必须在运行应用程序之前创建所需的数据库和表。由于我们使用的是实体框架(EF Core),我们可以使用下面的数据库迁移命令和包管理器控制台来创建一个迁移脚本:
add-migration Initial
使用以下命令创建数据库和表:
update-database
完成后,如果您使用 SQL Server 对象资源管理器检查数据库,您可以看到在数据库内部创建了几个数据库表。
在数据库迁移过程中,为 User、Role 和 Claims 创建了 7 张表。这是用于 Identity框架。
ASP.NET Core Identity 是一个会员系统,允许您向应用程序添加登录功能。用户可以创建帐户并使用用户名和密码登录,也可以使用外部登录提供程序,例如 Facebook、Google、Microsoft Account、Twitter 等。
您可以将 ASP.NET Core Identity 配置为使用 SQL Server 数据库来存储用户名、密码和配置文件数据。或者,你可以使用自己的持久化存储将数据存储在另一个其他持久化存储中,例如 Azure 表存储。
8.控制方式,我们可以在 WeatherForecast 控制器中添加 [Authorize] 属性,添加后整个控制器都需要认证才可以访问,除非在方法上添加了[AllowAnonymous]。
在方法上可以加 [Authorize] 或者 [Authorize(Roles =UserRoles.Admin)]
9.演示
(1)http://localhost:41056/api/Authenticate/register //注册
Body-raw下添加
{
"username": "a1",
"email": "a1@example.com",
"password": "1233abcABC@"
}
(2)http://localhost:41056/api/Authenticate/login //登录
Body-raw下添加
{
"username": "a1",
"password": "1233abcABC@"
}
(3)http://localhost:41056/api/CeShi/Cs2 //在认证的访问
在请求头的Authorization 加以下值
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYTEiLCJqdGkiOiJkZTk2MzBmOC01M2ViLTQ4ODktODJhMC0yMjM1OWM3MDVlNDIiLCJleHAiOjE2ODU0Mzg4NzUsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwMCIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDIwMCJ9.1y8d2orw2F-J4v7eV-pRDrhSO4oruSfURQGsctG8WwE
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
.net core 6 + Identity 4 (452个子文件)
API1.csproj.BuildWithSkipAnalyzers 0B
API1.csproj.BuildWithSkipAnalyzers 0B
API1.csproj.BuildWithSkipAnalyzers 0B
API1.csproj.AssemblyReference.cache 205KB
API1.csproj.AssemblyReference.cache 205KB
API1.csproj.AssemblyReference.cache 181KB
API1.assets.cache 65KB
API1.assets.cache 65KB
API1.assets.cache 37KB
project.nuget.cache 13KB
project.nuget.cache 13KB
project.nuget.cache 8KB
API1.csproj.CoreCompileInputs.cache 42B
API1.genruntimeconfig.cache 42B
API1.AssemblyInfoInputs.cache 42B
API1.csproj.CoreCompileInputs.cache 42B
API1.genruntimeconfig.cache 42B
API1.AssemblyInfoInputs.cache 42B
API1.csproj.CoreCompileInputs.cache 42B
API1.genruntimeconfig.cache 42B
API1.AssemblyInfoInputs.cache 42B
API1.MvcApplicationPartsAssemblyInfo.cache 0B
API1.MvcApplicationPartsAssemblyInfo.cache 0B
API1.MvcApplicationPartsAssemblyInfo.cache 0B
applicationhost.config 79KB
applicationhost.config 79KB
applicationhost.config 79KB
API1.csproj.CopyComplete 0B
API1.csproj.CopyComplete 0B
API1.csproj.CopyComplete 0B
20230530035309_Initial.Designer.cs 10KB
20230530035309_Initial.Designer.cs 10KB
20230530035309_Initial.Designer.cs 10KB
ApplicationDbContextModelSnapshot.cs 10KB
ApplicationDbContextModelSnapshot.cs 10KB
ApplicationDbContextModelSnapshot.cs 10KB
20230530035309_Initial.cs 10KB
20230530035309_Initial.cs 10KB
20230530035309_Initial.cs 10KB
AuthenticateController.cs 6KB
AuthenticateController.cs 6KB
AuthenticateController.cs 6KB
Program.cs 3KB
Program.cs 3KB
Program.cs 3KB
ErrorHandlingMiddleware.cs 2KB
WeatherForecastController.cs 1KB
WeatherForecastController.cs 1KB
WeatherForecastController.cs 1KB
CeShiController.cs 1009B
CeShiController.cs 1009B
API1.AssemblyInfo.cs 995B
API1.AssemblyInfo.cs 995B
API1.AssemblyInfo.cs 995B
FreeSqlService.cs 812B
FreeSqlService.cs 812B
API1.GlobalUsings.g.cs 770B
API1.GlobalUsings.g.cs 770B
API1.GlobalUsings.g.cs 770B
API1.MvcApplicationPartsAssemblyInfo.cs 635B
API1.MvcApplicationPartsAssemblyInfo.cs 635B
API1.MvcApplicationPartsAssemblyInfo.cs 635B
ApplicationDbContext.cs 519B
ApplicationDbContext.cs 519B
ApplicationDbContext.cs 519B
CeShiController.cs 502B
RegisterModel.cs 450B
RegisterModel.cs 450B
RegisterModel.cs 450B
LoginModel.cs 320B
LoginModel.cs 320B
LoginModel.cs 320B
ApiResult.cs 319B
WeatherForecast.cs 282B
WeatherForecast.cs 282B
WeatherForecast.cs 282B
TestA.cs 233B
TestA.cs 233B
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs 198B
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs 198B
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs 198B
UserRoles.cs 170B
UserRoles.cs 170B
UserRoles.cs 170B
Response.cs 163B
Response.cs 163B
Response.cs 163B
ITest.cs 156B
ITest.cs 156B
A.cs 146B
A.cs 146B
Freesql.cs 126B
Freesql.cs 126B
MySqlFlag.cs 73B
MySqlFlag.cs 73B
API1.csproj 1KB
API1.csproj 1KB
API1.csproj 1KB
Oracle.ManagedDataAccess.dll 4.34MB
Oracle.ManagedDataAccess.dll 4.34MB
共 452 条
- 1
- 2
- 3
- 4
- 5
资源评论
k195514239
- 粉丝: 3
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于UC3842+LTS26Q1565A设计PC机充电器 硬件(原理图+PCB)工程文件.zip
- Hive SQL经典面试题,大数据SQL经典面试题
- Qt实现喷码器代码,实现二维码、条形码、图形的旋转、移动等
- 基于LM324芯片比较器传感器模块AD09设计硬件(原理图+PCB)工程文件.zip
- HTTP请求 - 记一笔-添加记账.jmx
- 2205040245凡永超硬间隔svm.ipynb
- Qt喷码器demo,演示软件,不是代码
- 目标跟踪-基于目标中心点同时进行目标检测+目标跟踪算法实现-项目源码-优质项目实战.zip
- Python《文本特征分析-全唐诗数据挖掘及分析 》+源代码
- Netron-Setup-4.5.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功