Этот вопрос является продолжением моего предыдущего вопроса. В этом вопросе я столкнулся с проблемой, когда я не мог войти в систему к существующему пользователю. Я решил это благодаря MD Фариду Уддину Кирону. Я изменил свою строку подключения в appsettings.json . Это решило мою проблему, но теперь у меня есть другая проблема.
Вопрос/Проблема
Я сталкиваюсь с необычной проблемой, Когда я пытаюсь создать новую учетную запись, я получаю исключение, которая говорит, что имя пользователя уже существует. У меня есть только один пользователь с уникальным именем пользователя (адрес электронной почты). Я не могу понять, почему это происходит. />
Код: Выделить всё
public async Task OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = Input.Email,
Email = Input.Email,
FirstName = Input.FirstName,
LastName = Input.LastName
};
var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded)
{
_logger.LogInformation("User created a new account with password.");
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
var callbackUrl = Url.Page("/Account/ConfirmEmail",
pageHandler: null,
values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
protocol: Request.Scheme);
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by [url={HtmlEncoder.Default.Encode(callbackUrl)}]clicking here[/url].");
if (_userManager.Options.SignIn.RequireConfirmedAccount)
{
return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
}
else
{
await _signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl);
}
}
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}
// If we got this far, something failed, redisplay form
return Page();
}
Код: Выделить всё
//
// Summary:
// Creates the specified user in the backing store with given password, as an asynchronous operation.
//
// Parameters:
// user:
// The user to create.
//
// password:
// The password for the user to hash and store.
//
// Returns:
// The System.Threading.Tasks.Task that represents the asynchronous operation, containing
// the Microsoft.AspNetCore.Identity.IdentityResult of the operation.
public virtual Task CreateAsync(TUser user);
[AsyncStateMachine(typeof(UserManager.d__78))]
public virtual Task CreateAsync(TUser user, string password);
Спасибо за ваше время.
Подробнее здесь: https://stackoverflow.com/questions/757 ... p-net-core
Мобильная версия