Как автоматически создавать таблицы для ролей и пользователей, используя каркас идентичности с подходом кода в asp.net mvc 5 - PullRequest
1 голос
/ 09 ноября 2019

Я создаю приложение и создал две таблицы, но хочу создать таблицы таблиц AspNetRoles, AspNetUsers, AspNetUsersRoles и т. Д. С помощью кода вначале. Как бы это создать без использования БД первого подхода или ручного создания таблиц

 public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
        createRolesandUsers();
    }
    private void createRolesandUsers()
    {
        ApplicationDbContext context = new ApplicationDbContext();

        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));


        // In Startup iam creating first Admin Role and creating a default Admin User    
        if (!roleManager.RoleExists("SuperAdmin"))
        {

            // first we create Admin rool   
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "SuperAdmin";
            roleManager.Create(role);

            //Here we create a Admin super user who will maintain the website                  

            var user = new ApplicationUser();
            user.UserName = "abc";
            user.Email = "abc@gmail.com";

            string userPWD = "password";

            var chkUser = UserManager.Create(user, userPWD);

            //Add default User to Role Admin   
            if (chkUser.Succeeded)
            {
                var result1 = UserManager.AddToRole(user.Id, "SuperAdmin");

            }
        }

        //creating Creating Manager role
        if (!roleManager.RoleExists("Manager"))
        {
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "Manager";
            roleManager.Create(role);

        }

        // creating Creating Employee role    
        if (!roleManager.RoleExists("Employee"))
        {
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "Employee";
            roleManager.Create(role);

        }
    }

Я сделал так и не сделал иначе

1 Ответ

0 голосов
/ 09 ноября 2019

Если я правильно понял ваш вопрос, вам просто нужно расширить IdentityDbContext, который является частью Identity Framework, и сгенерировать миграцию. Это способ сделать код первым подходом. https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli

...