Asp. Net Core Spa, как перенаправить после успешного ConfirmEmail - PullRequest
0 голосов
/ 06 мая 2020

У вас есть приложение Aps. Net Core spa (Angular), и вы хотите перенаправить на страницу после успешного подтверждения по электронной почте и входа в систему. Как это реализовать (в коде Identity / Pages / Account / ConfirmEmail. chtml .cs).

        ...
        var user = await _userManager.FindByIdAsync(userId);
        if (user == null)
        {
            return NotFound($"Unable to load user with ID '{userId}'.");
        }

        code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
        var result = await _userManager.ConfirmEmailAsync(user, code);

        if (result.Succeeded)
        {
            await _signInManager.SignInAsync(user, false, null);
            return RedirectToPage("/"); // THIS DOES NOT WORK... AREA PROBLEM?
        }
        ...

RedirectToPage в приведенном выше коде дает исключение: InvalidOperationException: страница не названа '/' соответствует предоставленным значениям. Возможно, "область" и логин связаны?

1 Ответ

0 голосов
/ 07 мая 2020

Решено в сочетании с JavaScript в файле ConfirmEmail. chtml. В ConfirmEmail. chtml .cs я добавил:

var result = await _userManager.ConfirmEmailAsync(user, code); 
if (result.Succeeded)
{
    await _signInManager.SignInAsync(user, false, null);
    ViewData["Redirect"] = "/";
}

In ConfirmEmail. chtml Я добавил следующее изменение в конец файла:

@if (ViewData["Redirect"] != null)
{
  <text>
    <script>
        window.location.href = '@ViewData["Redirect"]';
    </script>
  </text>
}
...