Resgistro IUserTokenProvider

Bom dia pessoal.

Consegui evoluir com o problema de token inválido. Tive que acrescentar o seguinte código:

[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task EsqueciSenha(EsqueciSenhaViewModel modelo) { if (!ModelState.IsValid) { return View(modelo); }

       // UsuarioManager manager = HttpContext.GetOwinContext().GetUserManager<UsuarioManager>();
      //  var usuario = await manager.FindByEmailAsync(modelo.Email);

        var provider = new DpapiDataProtectionProvider("ASP.NET Identity");

        var userManager = HttpContext.GetOwinContext().GetUserManager<UsuarioManager>();

       // var userManager = new UserManager<Usuario>(new UserStore<Usuario>());

        userManager.UserTokenProvider = new DataProtectorTokenProvider<Usuario, string>(
            provider.Create("Igs2.0"));

        var usuario = await userManager.FindByEmailAsync(modelo.Email);


        if (usuario == null || !(await userManager.IsEmailConfirmedAsync(usuario.Id)))
        {
            var token = await userManager.GeneratePasswordResetTokenAsync(usuario.Id);


            var callbackUrl = Url.Action("ConfirmacaoEsqueciSenha", "Autenticacao", new { UsuarioId = usuario.Id, Token= token }, protocol: Request.Url.Scheme);
            var enviarEmail = EmailEsqueciSenhaController.EnviarEmail(usuario, "Por favor redefina sua senha clicando aqui: <a href=\"" + callbackUrl + "\">Clique aqui para redefinir sua senha!</a>", "Alteração de senha");


            return View("EmailEsqueciSenhaEnviado");
        }

        return View(modelo);

    }

Desta forma consigo pegar um token válido e recebo um e-mail para confirmar o reset de senha. Neste e-mail tenho um link que ao clicar, sou redirecionada para o seguinte código:

[HttpPost] public async Task ConfirmacaoEsqueciSenha(ConfirmacaoEsqueciSenhaViewModel modelo) {

        UsuarioManager manager = HttpContext.GetOwinContext().GetUserManager<UsuarioManager>();
        //var usuario = await manager.FindByIdAsync(modelo.UsuarioId);

        if (ModelState.IsValid)
        {
            var resultadoAlteracao =
                await manager.ResetPasswordAsync(
                    modelo.UsuarioId, 
                    modelo.Token,
                    modelo.NovaSenha);

            if (resultadoAlteracao.Succeeded)
            {
                return RedirectToAction("Index", "Home");
            }
            AddErrors(resultadoAlteracao);

        }

        return View();
    }

Na depuração na linha da variável “resultadoAlteracao” estou recebendo todos os dados do modelo(UsuarioId, Token e NovaSenha), sendo que quando passo desta linha ocorre o seguinte erro:

System.NotSupportedException: No IUserTokenProvider is registered.

Linha 343: // Verifica o ID do usuário Linha 344: // Mudar a senha Linha 345: var resultadoAlteracao = Linha 346: await manager.ResetPasswordAsync( Linha 347: modelo.UsuarioId,

Alguém poderia me ajudar?
Obrigada. Flávia Lares