Asp.Net Core第三讲

本章主要讲解关于EntityFramwork Core的实际使用步骤,以及身份验证技术Token的实际使用步骤

1. EntityFramework Core

a: 什么是EntityFramework Core?

       EntityFramework Core是轻量级,可扩展和开源的软件,同时也是跨平台的,是微软官方推荐的数据访问平台;EntityFramework Core同样也是目前比较流行的ORM(Object-Relational Mapper)框架。

b: 为什么使用EntityFramework Core?

       跨平台,简单,安全

c: 怎么使用EntityFramework Core?

       EntityFramework Core支持Code First模式

数据库不存在,需要先创建应用程序所需要的数据实体类和数据库上下文类,然后创建数据库和相关表;

数据库存在,可以使用已存在数据库反向生成Code First代码;

eg1: 数据库不存在

步骤1:首先NuGet安装Microsoft.EntityFrameworkCore.SqlServer组件和Microsoft.EntityFrameworkCore.Tools组件

步骤2:创建数据实体类和数据库上下文类

步骤3:在appsettings.json配置文件中创建数据库连接字符串

步骤4:在StartUp类中的ConfigureServices方法中注册数据库上下文类服务到容器

步骤5:可设置种子数据 ,初始表中的数据 (此步依据自己需要设置即可) 

 步骤6:打开程序包管理器控制台,生成迁移,执行迁移

  1. 生成迁移  Add-Migration InitDataBase   
  2. 执行迁移  Update-DataBase

步骤7:更新数据库结构

直接更新数据实体类和数据库上下文类,再次生成迁移,执行迁移

eg2: 数据库存在

步骤1:首先NuGet安装Microsoft.EntityFrameworkCore.SqlServer组件和Microsoft.EntityFrameworkCore.Tools组件

步骤2:打开程序包管理器控制台,执行从数据库生成模型类的命令

Scaffold-DbContext ‘连接字符串’ 数据提供程序名称 -OutputDir 结果输出文件夹 -Context 数据上下文名 –DataAnnotations

示例:Scaffold-DbContext  'Data Source=.;Initial Catalog=SchoolDb; Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer  -OutputDir Models  -Context SchoolContext

步骤3:在StartUp类中的ConfigureServices方法中注册数据库上下文类服务到容器

步骤4:更新数据库结构

直接更新数据实体类和数据库上下文类,生成迁移,执行迁移

2. 安全认证token的实现

a: 为什么使用token ?

为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息

b: 什么是jwt token?

jwt token : 为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息,称为token,这个token通常由Json数据格式组成,通过hash散列算法生成一个字符串,所以称为Json Web Token (Json表示令牌的原始值是一个Json格式的数据,web表示是在互联网传播的,token表示令牌,简称jwt)

jwt 由三部分组成,头部(Header),载荷(Payload)(这一部分主要是信息存储部分), 签名(Signature)(这一部分主要是确保信息没有被篡改)

c: 怎么使用jwt token实现身份验证?

第一步:使用nuget安装Microsoft.AspNetCore.Authentication.JwtBearer                                         

第二步:在Startup类的ConfigureServices方法中添加如下代码

第三步:在Startup类的Configue方法中添加以下代码

第四步:创建JwtTokenUtil工具类,用于生成Jwt Token

 第五步:登录成功,返回token

第六步:保护相应的动作方法

 第七步:前端请求的时候设置请求头

headers['Authorization'] = 'Bearer ' + token

第八步:后端依据请求的token识别出请求的UserName

首先在Startup类中的ConfigureServices添加以下代码

然后给类型ClaimsPrincipal类型扩展一个方法

最后可以通过注入IHttpContextAccessor,从请求的上下文类HttpContext中获取到当前登录人的信息

结尾:本篇博客中一些描述如有错误,请大家指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值