У меня возникли проблемы после вызова метода UserManager.Create. Дело в том, что текущий зарегистрированный пользователь потерял свои учетные данные после создания нового пользователя. Я поставлю свой код здесь
public async Task<ActionResult> CrearUser(CreateUserModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
FirstName = model.FirstName,
LastName = model.LastName,
UserName = model.UserName,
Email = model.Email,
PhoneNumber = model.PhoneNumber,
ActiveSince = Convert.ToDateTime(model.ActiveSince),
ActiveUntil = Convert.ToDateTime(model.ActiveUntil)
};
var result = UserManager.Create(user, model.Password);
if (result.Succeeded)
{
// For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
// Send an email with this link
string code = HttpUtility.UrlEncode(await UserManager.GenerateEmailConfirmationTokenAsync(user.Id));
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
var roleStore = new RoleStore<IdentityRole>();
var roleMngr = new RoleManager<IdentityRole>(roleStore);
string name = roleMngr.FindById(model.rolid).Name;
await this.UserManager.AddToRoleAsync(user.Id, name);
Success(string.Format(" Usuario <b>{0}</b> Creado con Exito.", model.UserName), true);
return RedirectToAction("Index");
}
AddErrors(result);
}
// If we got this far, something failed, redisplay form
model.Roles = GetRoles();
return View(model);
}
удаление кода для отправки письма с подтверждением У меня нет проблем. Кто-нибудь знает, что там может влиять?
string code = HttpUtility.UrlEncode(await UserManager.GenerateEmailConfirmationTokenAsync(user.Id));
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");