种子实体和用户、角色?

2024-02-07

如何播种用户、角色和应用程序特定实体?看起来好像 IdentityModel 的目标是它自己的 Context?

internal sealed class Configuration : DbMigrationsConfiguration<Project.Models.SchoolContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
    }

    protected override void Seed(Project.Models.SchoolContext context)
    {
        // Seed the Entities
        //    context.People.AddOrUpdate(
        //      p => p.FullName,
        //      new Person { FullName = "Andrew Peters" }            
        //    );
        //
    }
}

vs.

protected override void Seed(Project.Models.ApplicationDbContext context)
{
    if (!context.Roles.Any(r => r.Name == "AppAdmin"))
    {
        var store = new RoleStore<IdentityRole>(context);
        var manager = new RoleManager<IdentityRole>(store);
        var role = new IdentityRole { Name = "AppAdmin" };
        manager.Create(role);
    }

    if (!context.Users.Any(u => u.UserName == "founder"))
    {
        var store = new UserStore<ApplicationUser>(context);
        var manager = new UserManager<ApplicationUser>(store);
        var user = new ApplicationUser {UserName = "founder"};

        manager.Create(user, "ChangeItAsap!");
        manager.AddToRole(user.Id, "AppAdmin");
    }
}

我不从迁移中播种,而是使用上下文数据库初始值设定项。我的上下文源自 IdentityDbContext,因此我使用此方法来播种用户和角色:

从ctor调用初始化器:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    private readonly IHttpContextBaseWrapper _httpContextBaseWrapper;

    static ApplicationDbContext()
    {
        // Set the database intializer which is run once during application start
        // This seeds the database with admin user credentials and admin role
        Database.SetInitializer(new ApplicationDbInitializer());
    }
...

然后我的种子代码:

public class ApplicationDbInitializer : CreateDatabaseIfNotExists<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        InitializeIdentityForEF(context);
        base.Seed(context);
    }

    public static void InitializeIdentityForEF(ApplicationDbContext db)
    {

        if (!db.Users.Any())
        {
            var roleStore = new RoleStore<IdentityRole>(db);
            var roleManager = new RoleManager<IdentityRole>(roleStore);
            var userStore = new UserStore<ApplicationUser>(db);
            var userManager = new UserManager<ApplicationUser>(userStore);

            // Add missing roles
            var role = roleManager.FindByName("Admin");
            if (role == null)
            {
                role = new IdentityRole("Admin");
                roleManager.Create(role);
            }

            // Create test users
            var user = userManager.FindByName("admin");
            if (user == null)
            {
                var newUser = new ApplicationUser()
                {
                    UserName = "admin",
                    FirstName = "Admin",
                    LastName = "User",
                    Email = "[email protected] /cdn-cgi/l/email-protection",
                    PhoneNumber = "5551234567",
                    MustChangePassword = false
                };
                userManager.Create(newUser, "Password1");
                userManager.SetLockoutEnabled(newUser.Id, false);
                userManager.AddToRole(newUser.Id, "Admin");
            }
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

种子实体和用户、角色? 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 使用C程序的随机数数组

    我是 C 程序新手 我需要创建 100 个 50 到 70 之间的随机数 并将它们存储在 double 数组中 我该如何开始 创建一个数组 int my array 100 为随机数生成器播种 srand 0 循环遍历你的数组并填充它 in
  • 如何使用 AFNetworking 2 批量请求?

    因此 我正在使用 AFNetworking 2 0 重写 iOS 7 的应用程序 但遇到了一次发送一批请求并跟踪其进度的问题 在旧的 AFNetworking 中有enqueueBatchOfHTTPRequestOperations pr
  • C# httpwebrequest 和 javascript

    我正在使用 C HttpWebRequest 来获取网页的一些数据 问题是一些数据在页面加载后使用 javascript ajax 更新 但我没有在响应字符串中获取它 有没有办法让网络请求等待页面中的所有脚本执行完毕 Thanks Amit
  • React Native:包解析错误

    当我尝试使用以下命令生成发行版本时 cd android gradlew assembleRelease 目录下会生成一个apk文件 app build outputs apk app release unsigned apk 不幸的是 当
  • NextJS 中的环境变量未定义

    我正在使用next auth需要使用环境变量的库如下 Providers GitHub clientId process env GITHUB ID clientSecret process env GITHUB SECRET 然而 当我测
  • Google Play 显示的 API 级别错误

    在 Google Play 中上传我的 APK 后 它会显示在 APK 详细信息中 API 级别 14 17 并在 Play 商店中公开展示 4 0 及更高版本 虽然我以前的版本有 API 级别 14 但我更改了我的应用程序并设置了以下 m
  • 在 C++ 中不使用字段名称打印实例化结构的值

    我可以做吗 例如 考虑以下结构 struct bag string fruit string book string money 我想以顺序形式打印结构包实例的字段值并获得如下输出 apple Computer Networking A t
  • fps - 如何将计数除以时间函数来确定 fps

    我有一个计数器可以计算每一帧 我想要做的是将其除以时间来确定程序的 FPS 但我不确定如何在 python 中对计时函数执行操作 我尝试过将时间初始化为 fps time time time fps time float time time
  • 如何让PHP输出声音(嘟嘟声)?

    这个 python 代码的 PHP 版本是什么 import winsound winsound Beep 537 2000 php主要用在网络服务器上 所以在那里发出嘟嘟声有什么用 并且你不能通过php在用户计算机上发出嘟嘟声 因为php
  • 为什么 Unity 和 C# 开发工具包扩展会给出不正确/多余的警告?

    我正在使用 Visual Studio Code 用 C for Unity 编写脚本 不幸的是 我有多余的警告 解决这些警告会导致我的项目失败 我主要谈论的是 IDE0051 删除未使用的私有成员 对于函数 Start 和 Update
  • 正则表达式获取大括号之间的字符串

    我想问一下C 中的正则表达式 我有一根绳子 ex 欢迎来到 stackoverflow 这是一个 C 问题 关于正则表达式获取 之间内容的任何想法 我想要得到 2 个字符串 欢迎来到 stackoverflow 这是一个 C 问题 和 st
  • 如何在 Chrome 中为 Selenium 设置假地理位置

    如何在 Chrome 中为 Selenium 设置假地理位置 尝试使用 locationcontext 和下面的 Javascript 但它似乎不起作用 我已经尝试过这里的解决方案 Chrome 自动化中的假地理位置 https stack
  • 使用 LESS 及其 @import 时的 CSS 冗余

    我真的很喜欢这个想法和概念LESS http lesscss org 然而我偶然发现了一个错误 我很早就向作者报告了该错误 但尚未得到任何反馈 也许只有我做错了事 My application less 与此类似的文件 import res
  • jsgrid 多个自定义控制按钮?

    我想添加多个自定义控制按钮 以便我可以向按钮添加自定义单击事件 我遇到的问题是仅显示删除按钮 我希望每行都显示编辑和删除按钮 我有以下代码
  • Android 上的 1dip 形状线(边框)模糊

    这是我的应用程序的屏幕截图 它取自Samsung Galaxy Note 10 1 mdpi 149 ppi 我的客户认为底部按钮周围的边框线和上面的圆角矩形是模糊的 我使用形状作为背景 如下所示
  • 将数据通过管道传输到需要 TTY(终端)的 Linux 程序

    我在 Linux 中有一个程序 如果它的 stdin stdout 不是 TTY 终端设备 它就拒绝运行 是否有一个易于使用的工具可以创建 PTY 使用新创建的 TTY 启动程序 并通过 stdin stdout 复制所有数据 该用例不是交
  • 按后退按钮时会重新创建列表视图片段

    我正在使用装载机ListView片段 按下 后退 按钮即可重新创建它 你能告诉我如何处理这种情况吗 这是我的ListView片段代码 这里我有一个布尔变量 我将其设置为true单击列表项时 但一旦按下后退按钮onCreateView将被调用
  • Oracle SELECT 前 10 条记录 [重复]

    这个问题在这里已经有答案了 我在 Oracle 中的 SQL 语句有一个大问题 我想选择按 STORAGE DB 排序的前 10 条记录 这些记录不在其他 select 语句的列表中 这适用于所有记录 SELECT DISTINCT APP
  • 应用内购买 - 存储/获取用户购买历史记录 | iOS系统

    我正在开发一个应用程序 该应用程序将允许用户使用应用程序内购买购买新的级别 功能 据我所知 根据我的研究 我可以通过传递一组 ProductIds 使用 SKProductsRequest 从 iTunesConnect 获取应用内购买产品
  • 种子实体和用户、角色?

    如何播种用户 角色和应用程序特定实体 看起来好像 IdentityModel 的目标是它自己的 Context internal sealed class Configuration DbMigrationsConfiguration