Я использую ASP.NET Core Identity для проверки подлинности на своем веб-сайте и пытаюсь зарегистрировать идентификатор пользователя в БД, как только он войдет в систему, но, похоже, я не могу получить к ним доступ с помощью следующий код GetResult()
возвращает здесь ноль, но он отлично работает, если он находится на следующей странице, но только не в методе OnPostAsync
, где он должен быть.
Input.UserIDOrLogonName
не содержит идентификатор пользователя.
private readonly SignInManager<User> _signInManager;
private readonly UserManager<User> _userManager;
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(Input.UserIDOrLogonName, Input.Password, Input.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
var userId = _userManager.GetUserAsync(HttpContext.User)
.GetAwaiter().GetResult().UserId;
_audit.RecordAction(AuditType.LoginSuccess, userId);
return LocalRedirect(returnUrl);
}
Есть ли другой способ добраться до экземпляра пользователя?