asp.net-core – 如何在EF Core 2.1.0中为Admin用户播种?
发布时间:2020-05-24 16:19:20 所属栏目:asp.Net 来源:互联网
导读:我有一个使用EF Core 2.1.0的ASP.NET Core 2.1.0应用程序. 如何使用Admin用户为数据库播种并为其授予管理员角色?我找不到任何关于此的文件. 因为用户不能以正常方式在Identity中播种,就像其他表使用.NET Core 2.1的.HasData()播种一样. .NET Core 2.1中的种
|
我有一个使用EF Core 2.1.0的ASP.NET Core 2.1.0应用程序. 如何使用Admin用户为数据库播种并为其授予管理员角色?我找不到任何关于此的文件. 解决方法因为用户不能以正常方式在Identity中播种,就像其他表使用.NET Core 2.1的.HasData()播种一样..NET Core 2.1中的种子角色使用ApplicationDbContext类中给出的代码: protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example,you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
modelBuilder.Entity<IdentityRole>().HasData(new IdentityRole { Name = "Admin",NormalizedName = "Admin".ToUpper() });
}
具有角色的种子用户按照以下步骤操作. 第1步:创建新类 public static class ApplicationDbInitializer
{
public static void SeedUsers(UserManager<IdentityUser> userManager)
{
if (userManager.FindByEmailAsync("abc@xyz.com").Result==null)
{
IdentityUser user = new IdentityUser
{
UserName = "abc@xyz.com",Email = "abc@xyz.com"
};
IdentityResult result = userManager.CreateAsync(user,"PasswordHere").Result;
if (result.Succeeded)
{
userManager.AddToRoleAsync(user,"Admin").Wait();
}
}
}
}
步骤2:现在修改Startup.cs类中的ConfigureServices方法. 修改前: services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
修改后: services.AddDefaultIdentity<IdentityUser>().AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
步骤3:修改Startup.cs类中Configure Method的参数. 修改前: public void Configure(IApplicationBuilder app,IHostingEnvironment env)
{
//..........
}
修改后: public void Configure(IApplicationBuilder app,IHostingEnvironment env,UserManager<IdentityUser> userManager)
{
//..........
}
第4步:调用Seed(ApplicationDbInitializer)类的方法: ApplicationDbInitializer.SeedUsers(userManager); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 删除Razor MVC 3中的HTML格式
- SqlServer如何给表添加新的字段以及字段注释
- 认识ASP.NET配置文件Web.config
- asp.net – 如何引用主域名而不用硬编码它的名字?
- asp.net – Page.Request.UserHostAddress的格式无效
- 单页应用认证
- asp.net-mvc-3 – ASP.net MVC路由与可选的第一个参数
- 更改生成的ASP.Net ID?
- asp.net-core-mvc – 如何在Asp.net Core MVC(又名Asp.Net
- asp.net-mvc – 如何在.NET MVC3 HTML表单中的必需可空Date
推荐文章
站长推荐
- IIS反向代理不使用ASP.NET中的Response.Redirect
- asp.net-mvc – 今天在.NET中实现RESTful架构的最
- asp.net-mvc – 安全地从MVC5项目中删除所有OWIN
- asp.net-mvc – 跟踪登录用户
- asp.net-mvc – JSP相当于ASP.NET MVC的部分视图
- 如果会话正在使用,单个asp.net用户可以一次使用多
- asp.net-core – 安装特定版本的dnx
- asp.net-mvc – 在asp.net mvc请求中捕获windows
- asp.net-mvc – MVC4 RC WebApi参数绑定
- ASP.NET Forms Auth当所有其他应该被拒绝时,允许
热点阅读
