1 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊
您必須編寫自己的種子邏輯來播種默認(rèn)用戶和角色。查看 Jeff Fritz 的CoreWiki 存儲庫以獲取示例。
這是相關(guān)的部分。請注意如何多次調(diào)用它而不必?fù)?dān)心創(chuàng)建多個帳戶——這很重要,因為每次運行應(yīng)用程序時都會調(diào)用它。
public static async Task Seed(UserManager<CoreWikiUser> userManager, RoleManager<IdentityRole> roleManager)
{
var administratorsRole = "Administrator";
var defaultAdminUsername = "admin@corewiki.com";
var defaultAdminPassword = "Admin@123";
var adminRoleExists = await roleManager.RoleExistsAsync(administratorsRole);
if (!adminRoleExists)
{
var role = new IdentityRole(administratorsRole)
{
Name = administratorsRole
};
var roleResult = await roleManager.CreateAsync(role);
}
// If there are no users who are currently an admin, then create a default admin user
var anyAdminUsers = await userManager.GetUsersInRoleAsync(administratorsRole);
if (!anyAdminUsers.Any())
{
var defaultAdminUserExists = await userManager.FindByEmailAsync(defaultAdminUsername);
if (defaultAdminUserExists == null)
{
var defaultAdminUser = new CoreWikiUser
{
UserName = defaultAdminUsername,
Email = defaultAdminUsername
};
var userResult = await userManager.CreateAsync(defaultAdminUser, defaultAdminPassword);
if (userResult.Succeeded)
{
var result = await userManager.AddToRoleAsync(defaultAdminUser, administratorsRole);
}
}
}
}
然后,您可以從 Startup 調(diào)用它,ConfigureServices()也可以在Main()運行虛擬主機(jī)之前直接在您的網(wǎng)絡(luò)主機(jī)中調(diào)用它,如果您的種子方法是async.
如果傳遞了命令行參數(shù),另一種方法是在 Main() 中運行它。例如。dotnet run seed.
- 1 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報