首页 > 数据库 >Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

时间:2023-02-02 02:11:25浏览次数:60  
标签:Sqlite b15blazorIDS ef DB 身份验证 https Blazor com

目录

  1. 建立默认带身份验证 Blazor 程序
  2. 角色/组件/特性/过程逻辑
  3. DB 改 Sqlite
  4. 将自定义字段添加到用户表
  5. 脚手架拉取IDS文件,本地化资源
  6. freesql 生成实体类,freesql 管理ids数据表
  7. 初始化 Roles,freesql 外键 => 导航属性
  8. 完善 freesql 和 bb 特性

本节源码

https://github.com/densen2014/Blazor100/tree/Blazor-教程15-3/b15blazorIDS

引用 EntityFrameworkCore.Sqlite 库

<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.2" />

配置文件加入Sqlite数据库链接

appsettings.json文件加入一行代码 "IdsSQliteConnection": "Data Source=ids.db;"

最终文件如下

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-b15blazorIDS-f969184b-89a5-4ccf-beeb-911a756ae70a;Trusted_Connection=True;MultipleActiveResultSets=true",
    "IdsSQliteConnection": "Data Source=ids.db;"
  },
  ...
}

使用EF Sqlite 配置

Program.cs文件

//EF SqlServer 配置

// Add services to the container.
//var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");

//builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(connectionString));

//EF Sqlite 配置
builder.Services.AddDbContext<ApplicationDbContext>(o => o.UseSqlite(builder.Configuration.GetConnectionString("IdsSQliteConnection")));

重新生成 Migrations 脚本

之前版本是基于localdb,如果不换脚本会出现An error occurred applying migrations, try applying them from the command line错误

删除 Migrations 文件夹

可选: 保留sqlserver的Migrations脚本, 使用 从项目中排除 菜单

创建新迁移并为其生成 SQL 脚本

打开命令行, VS菜单栏=>工具=>Nuget包管理器=>程序包管理器控制台(Packge Manager Console), 执行以下命令

cd b15blazorIDS
dotnet ef migrations add idsSqlite
dotnet ef database update

完整流程

PM> cd b15blazorIDS
PM> dotnet ef migrations add idsSqlite
Build started...
Build succeeded.
Done. To undo this action, use 'ef migrations remove'
PM> dotnet ef database update
Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
...
Done.
PM> 

重新生成的脚本

重新注册账号

如果运行后出错先跳过,直接导航到 https://localhost:7011/Identity/Account/Register 页面注册

Email Password Confirm Password
[email protected] 000000 000000
[email protected] 000000 000000

自动生成的数据库文件

本节源码

https://github.com/densen2014/Blazor100/tree/Blazor-教程15-3/b15blazorIDS

源代码

https://github.com/densen2014/Blazor100

https://gitee.com/densen2014/Blazor100 (镜像/非最新版)

标签:Sqlite,b15blazorIDS,ef,DB,身份验证,https,Blazor,com
From: https://www.cnblogs.com/densen2014/p/17083934.html

相关文章

  • 关于STM32CubeIDE无法正常启动GDB服务端的解决办法
    关于STM32CubeIDE无法正常启动GDB服务端的解决办法有时,可能STM32CubeIDE会报错,如下图FailedtostartGDBserver。而且点击Details也只能得知“ST-LINK初始化失败”......
  • windbg finalizequeue
    Pickafewandfindoutwheretheyarerooted(i.e.whytheycan’tbecollected)Note:Youmaywanttotryacoupledifferentones.!gcroot<addressofcha......
  • STM32CubeMX | STM32 HAL库移植FreeModbus详细步骤
    STM32CubeMX|STM32HAL库移植FreeModbus详细步骤freemodbus下载地址:​​https://github.com/cwalter-at/freemodbus​​本博客示例工程代码:​​https://gitee.com/jhuangB......
  • jdbc+Druid工具类
    本文主要讲述使用druid连接池,将jdbc封装成工具类一.连接池  二.使用druid连接池在jdbc工具类的基础上,使用druid连接池,增加连接数量。hsp老师写的方式:/......
  • Blazor入门100天 : 身份验证和授权 (1)
    目录建立默认带身份验证Blazor程序<AuthorizeView>组件,检查登录信息,级联参数获取身份验证状态数据,基于角色或基于策略的授权,可以在Razor组件中使用[Authorize]......
  • #我的新年Flag#ADB 常用指令
    It'snotaboutideas,it'saboutmakingideashappen查看当前连接设备C:\Users\BZZX>adbdevicesListofdevicesattached192.168.30.16:5555device连接指定设备a......
  • MySQL-JDBC反序列化分析
    0x01前言听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着tabby或是codeql一起看的,但是tabby的环境搭建一直有问题,耽误了很久时间,所以就直接看了。0x......
  • Java并发编程——LinkedBlockingQueue
    一、阻塞队列BlockingQueue在java.util.concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速......
  • adb指令
    adb(Android调试桥)是功能多样的命令行工具,可以实现与Android设备的通信,adb命令可用于执行各种设备下载adb方法1:安装AndroidStudio,里面带有adb方法2:安......
  • Python操作MongoDB
    虽然经常使用mongodb,但是很多方法都是现用现查,难得有时间,简单整理一下:一、连接mongodb安装第三方库:pipinstallpymongo连接到mongodb服务器:importpymongo#ho......