如何使用Identity ASP.NET Core通过代码优先迁移为用户和角色播种

索伦

我创建了一个新的干净的asp.net 5项目(rc1-final)。使用身份验证,我只有带有以下代码的ApplicationDbContext.cs:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    protected override void OnModelCreating(ModelBuilder builder)
    {
        // On event model creating
        base.OnModelCreating(builder);
    }
}

请注意ApplicationDbContext使用IdentityDbContext而不是DbContext。

没有任何IdentityConfig.cs。如果不存在经典受保护的覆盖无效对象,则需要在哪里创建角色和用户?

穆罕默德·阿卜杜拉

我这样做的方法是在模型名称空间中创建一个类。

public class SampleData
{
    public static void Initialize(IServiceProvider serviceProvider)
    {
        var context = serviceProvider.GetService<ApplicationDbContext>();

        string[] roles = new string[] { "Owner", "Administrator", "Manager", "Editor", "Buyer", "Business", "Seller", "Subscriber" };

        foreach (string role in roles)
        {
            var roleStore = new RoleStore<IdentityRole>(context);

            if (!context.Roles.Any(r => r.Name == role))
            {
                roleStore.CreateAsync(new IdentityRole(role));
            }
        }


        var user = new ApplicationUser
        {
            FirstName = "XXXX",
            LastName = "XXXX",
            Email = "[email protected]",
            NormalizedEmail = "[email protected]",
            UserName = "Owner",
            NormalizedUserName = "OWNER",
            PhoneNumber = "+111111111111",
            EmailConfirmed = true,
            PhoneNumberConfirmed = true,
            SecurityStamp = Guid.NewGuid().ToString("D")
        };


        if (!context.Users.Any(u => u.UserName == user.UserName))
        {
            var password = new PasswordHasher<ApplicationUser>();
            var hashed = password.HashPassword(user,"secret");
            user.PasswordHash = hashed;

            var userStore = new UserStore<ApplicationUser>(context);
            var result = userStore.CreateAsync(user);

        }

        AssignRoles(serviceProvider, user.Email, roles);

        context.SaveChangesAsync();
    }

    public static async Task<IdentityResult> AssignRoles(IServiceProvider services, string email, string[] roles)
    {
        UserManager<ApplicationUser> _userManager = services.GetService<UserManager<ApplicationUser>>();
        ApplicationUser user = await _userManager.FindByEmailAsync(email);
        var result = await _userManager.AddToRolesAsync(user, roles);

        return result;
    }

}

在启动时运行此代码。在配置路由方法之后,在Startup.cs中,配置方法的末尾,添加以下代码,如Stafford Williams之前所述。

SampleData.Initialize(app.ApplicationServices);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 ASP.NET Core identity v preview 3.0 创建自定义用户和角色?

来自分类Dev

尝试为Asp.Net mvc 5中的用户和角色播种数据时出错

来自分类Dev

使用 ASP.Net Identity 时如何获取 AD 用户

来自分类Dev

列出asp.net Identity 2.0中的用户和角色

来自分类Dev

如何使用ASP.NET Identity 2.0.1将角色更改强制传播给用户?

来自分类Dev

如何使用 ASP.NET Core、Identity Framework 和 Entity Framework 显示特定用户创建的内容

来自分类Dev

C# ASP.NET Identity 2 (.NET Framework MVC) - 使用权限和角色

来自分类Dev

如何使用AspNet.Identity使用Asp.Net RTM位创建用户?

来自分类Dev

如何使用新的ASP.NET Identity 2.0角色和授权属性?

来自分类Dev

如何使用Web窗体中的ASP.NET Identity授权角色?

来自分类Dev

如何使用ASP.NET Identity 2.0允许用户模拟另一个用户?

来自分类Dev

如何创建用户并使用ASP.NET Identity获得新创建的ID

来自分类Dev

如何使用ASP.NET Identity实施多租户用户登录

来自分类Dev

ASP.NET Identity2-如何使用AllowAnonymous Controller获取用户ID?

来自分类Dev

使用Asp.Net Identity 2将用户添加到角色后,如何使.AspNet.ApplicationCookie无效?

来自分类Dev

如果用户使用ASP .Net Identity通过外部登录提供程序登录,如何保存用户的上次登录日期?

来自分类Dev

如何从SimpleMembership迁移到ASP.NET.Identity

来自分类Dev

在 ASP.NET Core 上使用 Identity 登录后如何直接获取用户详细信息?

来自分类Dev

使用ASP.NET Core 1.0 Identity UserManager进行的事务

来自分类Dev

如何使用AspNet.Identity使用Asp.Net MVC5 RTM位登录/认证用户?

来自分类Dev

如何在ASP.NET Core 2.2中使用MVC代替剃须刀页面来使用Identity

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

如何在启动时/使用Web模板手动创建ASP.NET Identity用户

来自分类Dev

使用Visual Studio 2013模板和Asp.Net Identity进行代码优先无法正常工作?

来自分类Dev

如何使用ASP.NET Identity for ASP.NET MVC 5.0实现密码重置?

来自分类Dev

如何使用ASP.NET Identity for ASP.NET MVC 5.0实现密码重置?

来自分类Dev

使用控制器进行数据迁移的ASP.NET代码优先迁移

来自分类Dev

在ASP.NET Identity中添加角色

Related 相关文章

  1. 1

    如何使用 ASP.NET Core identity v preview 3.0 创建自定义用户和角色?

  2. 2

    尝试为Asp.Net mvc 5中的用户和角色播种数据时出错

  3. 3

    使用 ASP.Net Identity 时如何获取 AD 用户

  4. 4

    列出asp.net Identity 2.0中的用户和角色

  5. 5

    如何使用ASP.NET Identity 2.0.1将角色更改强制传播给用户?

  6. 6

    如何使用 ASP.NET Core、Identity Framework 和 Entity Framework 显示特定用户创建的内容

  7. 7

    C# ASP.NET Identity 2 (.NET Framework MVC) - 使用权限和角色

  8. 8

    如何使用AspNet.Identity使用Asp.Net RTM位创建用户?

  9. 9

    如何使用新的ASP.NET Identity 2.0角色和授权属性?

  10. 10

    如何使用Web窗体中的ASP.NET Identity授权角色?

  11. 11

    如何使用ASP.NET Identity 2.0允许用户模拟另一个用户?

  12. 12

    如何创建用户并使用ASP.NET Identity获得新创建的ID

  13. 13

    如何使用ASP.NET Identity实施多租户用户登录

  14. 14

    ASP.NET Identity2-如何使用AllowAnonymous Controller获取用户ID?

  15. 15

    使用Asp.Net Identity 2将用户添加到角色后,如何使.AspNet.ApplicationCookie无效?

  16. 16

    如果用户使用ASP .Net Identity通过外部登录提供程序登录,如何保存用户的上次登录日期?

  17. 17

    如何从SimpleMembership迁移到ASP.NET.Identity

  18. 18

    在 ASP.NET Core 上使用 Identity 登录后如何直接获取用户详细信息?

  19. 19

    使用ASP.NET Core 1.0 Identity UserManager进行的事务

  20. 20

    如何使用AspNet.Identity使用Asp.Net MVC5 RTM位登录/认证用户?

  21. 21

    如何在ASP.NET Core 2.2中使用MVC代替剃须刀页面来使用Identity

  22. 22

    ASP.NET(MVC)用户,角色和角色中的用户

  23. 23

    ASP.NET(MVC)用户,角色和角色中的用户

  24. 24

    如何在启动时/使用Web模板手动创建ASP.NET Identity用户

  25. 25

    使用Visual Studio 2013模板和Asp.Net Identity进行代码优先无法正常工作?

  26. 26

    如何使用ASP.NET Identity for ASP.NET MVC 5.0实现密码重置?

  27. 27

    如何使用ASP.NET Identity for ASP.NET MVC 5.0实现密码重置?

  28. 28

    使用控制器进行数据迁移的ASP.NET代码优先迁移

  29. 29

    在ASP.NET Identity中添加角色

热门标签

归档