Добавление администраторов с использованием Seed data Asp. net core - PullRequest
0 голосов
/ 03 апреля 2020

Я создаю веб-сайт с использованием Asp. net core.

Я хотел бы знать, является ли это хорошим и безопасным способом добавления администраторов сайта в базу данных с использованием начальных данных?

если нет, то как мне это сделать?

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы можете создать метод расширения для добавления пользователя в базу данных и вызвать метод в файле program.cs или в методе configure в startup классе

Согласно документации Microsoft лучше использовать это для использования начальных данных

Program.cs

public static void Main(string[] args)
{
     var host = CreateWebHostBuilder(args).Build();

    using (var scope = host.Services.CreateScope())
    {
        var services = scope.ServiceProvider;
        try
        {
            var context = services.GetRequiredService<DbContext>();
            DbInitializer.Initialize(context);
        }
        catch (Exception ex)
        {
            var logger = services.GetRequiredService<ILogger<Program>>();
            logger.LogError(ex, "An error occurred while seeding the database.");
        }
    }

    host.Run();
}

или Настроить метод way

public static void Initialize(this IApplicationBuilder app)
{
    using (var scope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
    {
        var dbContext = scope.ServiceProvider.GetServices<DbContext>();
        //insert data in database
    }
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.Initialize();
}

и эта ссылка может быть полезна для заполнения администратором

0 голосов
/ 03 апреля 2020

Я думаю, что Фарх уже довольно хорошо объяснил «как». Я хотел бы добавить следующее.

Я работаю с машиностроителем, и нам приходится иметь дело с администрацией по контролю за продуктами и лекарствами (американское юридическое лицо, которое осуществляет полномочия по обеспечению безопасности и регулирования в отношении продуктов питания и лекарств для Американские издательства c) и их европейские коллеги. Мы находимся в категории продуктов питания, поэтому она не такая жесткая, юридически обоснованная, как фармацевтическое регулирование, но все же довольно жесткая. Мы также делаем то, что вы здесь описываете.

У нас есть определенные роли: администратор, оператор и т. Д. c. и учетная запись «по умолчанию» для каждой роли создается для каждого пользователя. Это также хорошо, когда, например, кто-то забыл добавить оператора, и вы получаете звонок, который кому-то нужен, чтобы получить доступ к вашей системе для этой конкретной роли c.

Когда мы в конечном итоге отправляем нашу машину клиенту это становится их собственностью, и поэтому мы меняем большинство ролей и их учетных записей. У нас есть роль OEM, которая в принципе может делать все, для чего только у нас есть логин. Это в основном суперпользователь, и мы используем его только для обслуживания. Его детали хранятся в секрете за пределами компании.

Так что - я думаю, что вполне нормально вводить данные администратора в вашу базу данных, но, возможно, было бы разумно применить политику «с первого раза смени пароль».

...