asp.net-core – 是否可以/建议使用EFCore 2.1数据播种系统为用
发布时间:2020-12-16 09:43:58 所属栏目:asp.Net 来源:网络整理
导读:从EFCore 2.1开始,可以使用DbContext OnModelCreating方法对数据进行种子设定. https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding 但是,用户/角色创建通常由UserManager / RoleManager处理. 现在,我可以手动创建角色或用户 – 但是例如在用户
从EFCore 2.1开始,可以使用DbContext OnModelCreating方法对数据进行种子设定.
https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding 但是,用户/角色创建通常由UserManager / RoleManager处理. 现在,我可以手动创建角色或用户 – 但是例如在用户的情况下我需要自己散列密码(我不知道UserManager在没有深入挖掘源的情况下使用了什么散列方法) 有没有办法解决?或者我应该坚持使用像以前版本的Entity Framework Core一样在启动时运行的静态种子方法? 解决方法
如果要将OnModelCreating方法与HasData方法一起使用,可以这样做:
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ApplicationUser appUser = new ApplicationUser { UserName = "tester",Email = "tester@test.com",NormalizedEmail = "tester@test.com".ToUpper(),NormalizedUserName = "tester".ToUpper(),TwoFactorEnabled = false,EmailConfirmed = true,PhoneNumber = "123456789",PhoneNumberConfirmed = false }; PasswordHasher<ApplicationUser> ph = new PasswordHasher<ApplicationUser>(); appUser.PasswordHash = ph.HashPassword(appUser,"Your-PW1"); modelBuilder.Entity<IdentityRole>().HasData( new IdentityRole { Name = "Admin",NormalizedName = "ADMIN" },new IdentityRole { Name = "User",NormalizedName = "USER"} ); modelBuilder.Entity<ApplicationUser>().HasData( appUser ); } 如果在HasData方法之外创建用户,则可以使用PasswordHasher.它将为您散列密码.然后只需将创建的用户放入HasData,而不是在那里创建一个新用户.我不知道这是否比启动时播种更好,但它是一种方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在MVC ActionLink中使用Knockout绑定
- asp.net-mvc – 为什么应该使用HTTP POST或DELETE而不是GET
- 使用WiX设置ASP.Net版本
- 会话处理在asp.net
- asp.net – Visual Studio开发服务器使用错误的端口
- asp.net-mvc-3 – 在ASP.NET MVC中本地化/翻译路由
- asp.net-mvc – 在部署MVC 2 Web应用程序时要绝对检查的事项
- asp.net-mvc – Html.BeginForm()工作正常,Html.BeginForm(
- asp.net-mvc – jqGrid中的日期选择器,简单的例子?
- asp.net – “viewstate MAC的验证失败.如果这个应用程序由
推荐文章
站长推荐
- asp.net-mvc – Kendo UI窗口 – 阻止加载以前的
- asp.net核心中的Request.CreateResponse
- asp.net-mvc – .NET MVC – 调用控制器来自另一
- ASP.NET MVC“Donut caching”和TempData
- asp.net-mvc – MVC @model的含义
- asp.net-web-api – 使用swashbuckle api文档的h
- asp-classic – 在ASP Classic应用程序中获取根目
- asp.net-mvc-3 – ASP.NET MVC3 – DateTime格式
- asp.net – 使用FormsAuthentication持久的cooki
- asp.net-mvc – 如何动态地将值从提交按钮传递给
热点阅读