Asp.Net Core EF: как добавить Admin при инициализации базы данных - PullRequest
0 голосов
/ 17 мая 2018

Как добавить Admin в базу данных, при создании этой базы данных или добавить с помощью СУБД? Я не знаю, какой подход является более правильным.

Если я добавлю код при инициализации базы данных, где я должен это сделать, в DbContext?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Правильного подхода как такового не существует. Вы можете сделать это:

  1. Использование сценариев SQL - для запуска только при запуске сценариев
  2. Использование EF Data Seeding API - для запуска только при применении миграций
  3. В main() - запускаться при каждом запуске приложения

Вы можете сделать что-то подобное в Main():

public static async Task Main(string[] args)
{
    // Build the application host
    var host = BuildWebHost(args);

    using(var scope = host.Services.CreateScope())
    {
        // Resolve the UserManager using the created scope 
        var usermanager = scope.ServiceProvider.GetService<UserManager<ApplicationUser>>();

        // TODO: Add default users if they don't already exist
    }

    // Run the application
    host.Run();
}
0 голосов
/ 17 мая 2018

Вы не предоставили много информации о вашей ситуации, поэтому я отвечу в общих чертах.

Если у вас есть один администратор, то вы можете установить его учетные данные в конфигурации вашего приложения.,Вы также можете сохранить его в своей базе данных.Если в вашем приложении может быть несколько администраторов и их учетные данные могут быть изменены, вам нужно будет сохранить их в базе данных.Довольно распространенный подход заключается в том, чтобы иметь таблицу, в которой хранятся возможные роли пользователей, среди которых запись для администратора и таблица ваших пользователей должны иметь внешний ключ к таблице ролей.

Хорошо иметь приложение-установщикотдельно разработано, что гарантирует, что приложение будет использоваться в любой среде.Это приложение должно быть выполнено и должно запускать все скрипты и программные коды, которые вам нужны перед использованием приложения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...