Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Password reset token provider in ASP.NET core - IUserTokenProvider not found

Hello,

In order to getting password reset work I need to register an IUserTokenProvider instance into DI.

Without it I get exception at following line:

var result = await _userManager.ResetPasswordAsync(user, token, password);
"No IUserTokenProvider named 'PasswordResetTokenProvider' is registered."

That makes sense so I tried to register it in the DI:

services.AddSingleton<IUserTokenProvider<User>, DataProtectorTokenProvider<User>>();

But the interface IUserTokenProvider does not exists. Do you know how to solve this?

Thanks

like image 636
rudolfdobias Avatar asked Nov 06 '16 04:11

rudolfdobias


1 Answers

You can specify one of the built in providers;

services.AddIdentity<User, Role>(options =>{
        options.Tokens.PasswordResetTokenProvider = TokenOptions.DefaultEmailProvider;
    })
    .AddDefaultTokenProviders();

Or create your own IUserTwoFactorTokenProvider and register it like so;

services.AddIdentity<User, Role>(options => {
    options.Tokens.PasswordResetTokenProvider = nameof(MyTokenProvider);
})
.AddTokenProvider<MyTokenProvider>(nameof(MyTokenProvider));
like image 87
Jeremy Lakeman Avatar answered Sep 21 '22 15:09

Jeremy Lakeman