任务50:Identity MVC:DbContextSeed初始化

首先添加seed

每次应用程序启动,监测一下,是否是第一次启动。如果是第一次执行,我们需要在数据库内添加一个记录

比如说我们的用户账号,我们在第一次进来的时候,我们需要有一个管理员

在Data文件夹下新建:

ApplicationDbContextSeed.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using MvcCookieAuthSample.Models;
using Microsoft.Extensions.DependencyInjection; namespace MvcCookieAuthSample.Data
{
public class ApplicationDbContextSeed
{
private UserManager<ApplicationUser> _userManager;
public async Task SeedAsync(ApplicationDbContext context,IServiceProvider services)
{
if (context.Users.Any())
{
_userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
var defaultUser = new ApplicationUser
{
UserName = "Administrator",
Email = "haogeili@163..com",
NormalizedEmail="admin"
}; var result=await _userManager.CreateAsync(defaultUser, "Password$123");
if (!result.Succeeded)
{
throw new Exception("初始默认用户失败!");
}
}
}
}
}

ApplicationDbContextSeed

调用Seed方法

WebHostMigrationExtensions.cs

这里扩展的方法,我们要扩展的是IWebHost

这里我们要把依赖注入引入进来

包装器我们在哪里使用呢?Program.cs程序启动文件里面

这样我们的初始化就完成了。

          .MigrationDbContext<ApplicationDbContext>((context,services)=> {
new ApplicationDbContextSeed().SeedAsync(context, services)
.Wait();
})

运行测试

先把我们本地的数据库删掉。然后再运行我们的程序

更正代码

看到我们执行成功的输出信息

默认已经初始化的 用户信息

纠正代码错误:

重新运行并新建数据库

登陆成功。!!!!!

最新文章

  1. #import、#include、#import&lt;&gt;和#import””的区别
  2. 20145211 《Java程序设计》第2周学习总结——桃花依旧笑春风
  3. jQuery与DOM相互转换
  4. [开发]Win7环境下Eclipse连接Hadoop2.2.0
  5. Awk中调用shell命令
  6. NoInstall_Mysql
  7. AndroidStudio SDK版本下载
  8. JavaSE复习日记 : 循环终止语句(break/break outerFor/continue)
  9. 科尔尼咨询公司 - MBA智库百科
  10. windows server 2003断开远程之后自动注销用户
  11. 【腾讯Bugly干货分享】你为什么需要 Kotlin
  12. 一个适用于单页应用,返回原始滚动条位置的demo
  13. Mongodb---操作备忘
  14. docker第一章:docker核心概念及centos6下安装
  15. omcat+java的web程序持续占cpu高问题调试【转】
  16. 建立一个基本的UI
  17. 基于spring-cloud的微服务(4)API网关zuul
  18. 启动项目报错:502 Server dropped connection The following error occurred while trying to access http://localhost:8080/TestDemo:
  19. Django框架_URLconf、Views、template、ORM
  20. Truthy Falsy

热门文章

  1. win7系统使用engine进行开发报错,“未能加载文件或程序集”
  2. HDU2897( 巴什博奕变形)
  3. 微信小程序 项目实战(一)生命周期 配置服务器信息 splash启动页
  4. Android URL中文处理
  5. 关于Activity启动模式(launchMode)和intent设置测试后 发现和网上说的不符 是不是我错了 求解
  6. groovy入门 第05章 基本输入输出
  7. Vue生命周期方法。
  8. 使用JWT设计SpringBoot项目api接口安全服务
  9. Zed Shaw:一位老程序员的建议
  10. 图像物体检測识别中的LBP特征