Восстановление пароля MVC 5: UserManager.GenerateEmailConfirmationTokenAsync недоступен в ASP.NET

Я пытался реализовать токен сброса пароля, используя пример Рика Андерсона здесь http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity

Когда я попробовал код для контроллера забытого пароля в своем собственном приложении, у меня не было возможности выбрать UserManager.GenerateEmailConfirmationTokenAsync. Кто-нибудь сталкивался с этим? Я использую MVC 5. Возможно, это проблема версии/обновления Visual Studio? Я использую VS 2013 (версия 12.0.21005.1 REL).

Спасибо,

Санджив

public async Task<ActionResult> ForgotPassword(ForgotPasswordViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = await UserManager.FindByNameAsync(model.Email);
        if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
        {
            // Don't reveal that the user does not exist or is not confirmed
            return View("ForgotPasswordConfirmation");
        }

        var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
        var callbackUrl = Url.Action("ResetPassword", "Account", 
        new { UserId = user.Id, code = code }, protocol: Request.Url.Scheme);
        await UserManager.SendEmailAsync(user.Id, "Reset Password", 
        "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>");        
        return View("ForgotPasswordConfirmation");
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

person SKale    schedule 08.08.2014    source источник


Ответы (1)


Хорошо, проблема заключалась в том, что мне пришлось установить Visual Studio Update 2. Теперь параметры GeneratePasswordResetToken отображаются в UserManager.

person SKale    schedule 08.08.2014