任务50:Identity MVC:DbContextSeed初始化

任务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"
};

            </span><span style="color: #0000ff;">var</span> result=<span style="color: #0000ff;">await</span> _userManager.CreateAsync(defaultUser, <span style="color: #800000;">"</span><span style="color: #800000;">Password$123</span><span style="color: #800000;">"</span><span style="color: #000000;">);
            </span><span style="color: #0000ff;">if</span> (!<span style="color: #000000;">result.Succeeded)
            {
                </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> Exception(<span style="color: #800000;">"</span><span style="color: #800000;">初始默认用户失败!</span><span style="color: #800000;">"</span><span style="color: #000000;">);
            }
        }
    }
}

}

ApplicationDbContextSeed

 

 

调用Seed方法

WebHostMigrationExtensions.cs

 

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

 

 

 

 

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

 

 

 

 

 

 

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

 

 

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

 

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

 

 

运行测试

 

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

 

 

更正代码

 

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

 

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

 

 

 

纠正代码错误:

 

重新运行并新建数据库

 

 

登陆成功。!!!!!

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @ 2019-08-05 15:00  奋斗的中年人哈哈哈  阅读(293)  评论(0编辑  收藏  举报