ASP.NET Core - 身份迁移

ASP.NET Core - 身份迁移 首页 / ASP.Net Core入门教程 / ASP.NET Core - 身份迁移

在本章中,无涯教程将讨论身份迁移,在ASP.NET Core MVC中,在Startup.cs文件中配置身份验证和身份功能。

public void ConfigureServices(IServiceCollection services) { 
   services.AddMvc(); 
      services.AddEntityFramework() 
      .AddSqlServer() 
      .AddDbContext<FirstAppDemoDbContext>option.
      UseSqlServer(Configuration["database:connection"]));  
   
   services.AddIdentity<User, IdentityRole>() 
      .AddEntityFrameworkStores<FirstAppDemoDbContext>(); 
}

每当您更改一个实体类或更改DBContext派生类时,您就有可能必须创建一个新的迁移脚本以应用于数据库并将模式与代码中的内容同步。

在无涯教程的应用程序中就是这种情况,因为现在从IdentityDbContext类派生FirstAppDemoDbContext类,它包含自己的DbSet,并且还将创建一个架构来存储有关其管理的实体的所有信息。

using Microsoft.AspNet.Identity.EntityFramework; 
using Microsoft.Data.Entity;  

namespace FirstAppDemo.Models { 
   public class FirstAppDemoDbContext : IdentityDbContext<User> { 
      public DbSet<Employee> Employees { get; set; }  
      
      protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { 
         optionsBuilder.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB;
            Initial Catalog=FirstAppDemo;Integrated Security=True;
            Connect Timeout=30;Encrypt=False;
            TrustServerCertificate=True;ApplicationIntent=ReadWrite;
            MultiSubnetFailover=False"); 
      }
   } 
} 

现在打开命令提示符,并确保位于项目的project.json文件所在的位置。

Command Prompt

还可以通过输入 dnx ef 获得Entity Framework命令。

无涯教程网

Dnx Ef

无涯教程的project.json文件有一个部分,用于将该" ef"关键字与EntityFramework.Commands映射。

"commands": { 
   "web": "Microsoft.AspNet.Server.Kestrel", 
   "ef": "EntityFramework.Commands" 
} 

可以从这里添加迁移。还需要为迁移提供一个名称。将v2用于版本2,然后按回车。

V2 For Version

迁移完成后,您的迁移文件夹中将有一个v2文件。

链接:https://www.learnfk.comhttps://www.learnfk.com/asp.net_core/asp.net-core-identity-migrations.html

来源:LearnFk无涯教程网

V2 File

现在,想通过运行" dnx ef database update" 命令将该迁移应用于数据库。

Database Update

实体框架将看到有一个需要应用的迁移,它将执行该迁移。

如果您进入SQL Server对象资源管理器,将看到之前创建的Employee表,您还将看到一些必须存储用户,声明,角色的其他表,以及一些将用户映射到特定角色的映射表。

Additional tables

所有这些表都与Identity框架提供的实体相关。快速查看 users表。

Users Table

现在,您可以看到AspNetUsers表中的列包括用于存储在继承的Identity User上看到的所有那些属性及其字段(如UserName和PasswordHash)的列。因此,您一直在使用某些内置的身份服务,因为它们还具有创建用户和验证用户密码的功能。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Kafka核心源码解读 -〔胡夕〕

手机摄影 -〔@随你们去〕

大厂晋升指南 -〔李运华〕

操作系统实战45讲 -〔彭东〕

eBPF核心技术与实战 -〔倪朋飞〕

深入浅出分布式技术原理 -〔陈现麟〕

超级访谈:对话毕玄 -〔毕玄〕

手把手教你落地DDD -〔钟敬〕

运维监控系统实战笔记 -〔秦晓辉〕

好记忆不如烂笔头。留下您的足迹吧 :)