Есть ли какой-нибудь способ решить NullReferenceException ConfirmEmailAsyn c (пользователь TUser, строковый токен) при использовании Amazon.AspNetCore.Identity.Cognito? - PullRequest
2 голосов
/ 21 января 2020

Я использую Amazon.AspNetCore.Identity.Cognito и при использовании «ConfirmEmailAsyn c (пользователь TUser, строковый токен)» UserManager я получаю исключение NullReferenceException.

Предоставляется снимок экрана: The Error

Код, который я сделал:

[HttpPost]
[ActionName("Confirm")]
public async Task<IActionResult> Confirm_Post(ConfirmModel model)
{
    if(ModelState.IsValid)
    {
        var user = await _userManager.FindByEmailAsync(model.Email);
        if(user == null)
        {
            ModelState.AddModelError("NotFound", "A user with given email address was not found");
        }

        var result = await _userManager.ConfirmEmailAsync(user, model.Code).ConfigureAwait(false);
        if(result.Succeeded)
        {
            return RedirectToAction("Index", "Home");
        }
        else
        {
            foreach(var item in result.Errors)
            {
                ModelState.AddModelError(item.Code, item.Description);
            }
        }
    }
}

Пожалуйста, скажите мне, как решить эту проблему, поскольку я новичок в AWS, это кажется загадочным.

1 Ответ

2 голосов
/ 21 января 2020

Хорошо, я получил решение, теперь оно больше не вызывает исключение. Я использую ConfirmSignUpAsyn c (пользователь TUser, код подтверждения строки, bool принудительный просмотрАлиас): * метод 1002 * вместо ConfirmEmailAsyn c (пользователь TUser, маркер строки) , и он работает !!

var result = await ((CognitoUserManager<CognitoUser>)_userManager).ConfirmSignUpAsync(user, model.Code, true);
if(result.Succeeded)
{
     return RedirectToAction("Index", "Home");
}

Код приведен ниже, и если кто-то посчитает его полезным, это будет приятно. Спасибо всем !!

...