ASP. NET Core Identity на странице регистрации, зарегистрируйтесь, затем подождите 5 минут и более
Если вы реализуете и используете настраиваемую службу EmailSender для отправить уведомление по электронной почте зарегистрированному пользователю, что вызовет указанную выше проблему, если службе EmailSender потребуется много времени для отправки электронной почты.
Чтобы устранить проблему и определить, что-то не так с процессом отправки почты, вы можете попытаться написать собственный журнал для отслеживания времени выполнения фрагмента кода ключа, как показано ниже.
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
//custom log 1
_logger.LogInformation($"Reached Into Register Method - {DateTime.UtcNow.ToString()}");
returnUrl = returnUrl ?? Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var user = new IdentityUser { UserName = Input.Email, Email = Input.Email };
var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded)
{
_logger.LogInformation("User created a new account with password.");
//custom log 2
_logger.LogInformation($"Created New User - {DateTime.UtcNow.ToString()}");
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);
//custom log 3
_logger.LogInformation($"Generated Email Token - {DateTime.UtcNow.ToString()}");
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
//custom log 4
_logger.LogInformation($"Sent Email - {DateTime.UtcNow.ToString()}");
if (_userManager.Options.SignIn.RequireConfirmedAccount)
{
//...
В моем тесте, если моя настраиваемая служба EmailSender занимает около 2 минут для отправки уведомления о регистрации, пользователю браузера придется долго ждать этого операции.
Журналы регистрации пользователей
In browser Network tab, it take about 2 minutes
введите описание изображения здесь