Дело было в 3 часа ночи, и я очень обрадовался что я смог реализовать авторизацию. Все прекрасно работало, я закомитил и пошел спать. Но либо я страдаю лунатизмом, либо мне все это приснилось, утром я решил еще раз проверить иии.... ничего не работает, я застрял на странице логина.
Admin.cshtml:
....
@model AdminPageModel;
.....
@if (User.Identity.IsAuthenticated)
{
<component type="typeof(SpaAdmin.App)" render-mode="ServerPrerendered" />
<script src="../_framework/blazor.server.js"></script>
}
else
{
<div class="login-bg">
<div class=" card w-50 shadow p-3 mb-5 bg-white rounded">
<h1>Добро пожаловать</h1>
<h3>Введите логин и пароль</h3>
<ul>@Model.Message</ul>
................
</div>
</div>
}
Admin.cshtml.cs:
public class AdminPageModel : PageModel
{
private readonly SignInManager<User> _signInManager;
private readonly ILogger<AdminPageModel> _logger;
public string Message { get; set; } = "";
public AdminPageModel(SignInManager<User> signInManager, ILogger<AdminPageModel> logger)
{
_signInManager = signInManager;
_logger = logger;
}
public async Task<IActionResult> OnPostAsync(string login, string password, bool remember)
{
if(await _signInManager.PasswordSignInAsync(login, password, remember, false) !=
Microsoft.AspNetCore.Identity.SignInResult.Success)
{
Message = "Неверный логин или пароль";
return Page();
}
else
{
Message = "Вы успешно вошли";
_logger.LogInformation(Request.Path);
return Page();
}
}
public async Task<IActionResult> OnGetLogoutAsync()
{
await _signInManager.SignOutAsync();
return Redirect("/admin");
}
}
После ввода правильного логина и пароля происходит следующее:
Хотя эту форму вообще не должно быть видно, попытка откатить изменения ни к чему не привели, все тот же результат.