Если вы хотите добавить пользователя вручную, вы также должны установить свойство NormalizedUserName
. Кроме того, для хеширования паролей лучше использовать IPasswordHasher<TUser> Interface
:
Закачиваемые сервисы:
private readonly ApplicationDbContext _context;
public readonly IPasswordHasher<IdentityUser> _passwordHasher;
public HomeController( ApplicationDbContext dbContext, IPasswordHasher<IdentityUser> _passwordHasher)
{
this._context = dbContext;
this._passwordHasher = _passwordHasher;
}
Я предполагаю, что ваш User
наследует IdentityUser
, здесь я использую IdentityUser
например:
IdentityUser applicationUser = new IdentityUser();
Guid guid = Guid.NewGuid();
applicationUser.Id = guid.ToString();
applicationUser.UserName = "Joe";
applicationUser.Email = "wx@hotmail.com";
applicationUser.NormalizedUserName = "wx@hotmail.com";
_context.Users.Add(applicationUser);
var hasedPassword = _passwordHasher.HashPassword(applicationUser, "YourPassword");
applicationUser.SecurityStamp = Guid.NewGuid().ToString();
applicationUser.PasswordHash = hasedPassword;
_context.SaveChanges();
Вы также можете использовать UserManager.CreateAsync
для создания указанного пользователя в резервном хранилище с заданным паролем:
var user = new IdentityUser { UserName = "Joe", Email = "wx@hotmail.com" };
var result = await _userManager.CreateAsync(user, "YourPassWord");
if (result.Succeeded)
{
}
Примечание: вы должны указать значение Email
во время входа в систему.