相关疑难解决方法(0)

ASP.NET核心中的密码重置令牌提供程序 - 找不到IUserTokenProvider

你好,

我用google搜索过,但是有一百个来自ASP.NET的例子,但没有关于ASP.NET Core的内容.

为了获得密码重置工作,我需要在DI中注册一个IUserTokenProvider实例.

没有它,我会在以下行获得例外:

var result = await _userManager.ResetPasswordAsync(user, token, password);
Run Code Online (Sandbox Code Playgroud)

例外

"No IUserTokenProvider named 'PasswordResetTokenProvider' is registered."
Run Code Online (Sandbox Code Playgroud)

这是有道理的,所以我试着在DI中注册它:

services.AddSingleton<IUserTokenProvider<User>, DataProtectorTokenProvider<User>>();
Run Code Online (Sandbox Code Playgroud)

但是界面IUserTokenProvider不存在.我Microsoft.AspNetCore.Identity在文件中使用.它甚至不存在于项目gitlab中.

好吧,在挖掘了身份源代码后,我发现了一个类似的界面IUserTwoFactorTokenProvider<T>.让我们改用它:

services.AddSingleton<IUserTwoFactorTokenProvider<User>, DataProtectorTokenProvider<User>>();
Run Code Online (Sandbox Code Playgroud)

......没有运气


TL; DR:

请 - 如何在ASP.NET Core中重置密码?充其量只是一些例子.

先感谢您.

c# asp.net-identity-3 asp.net-core asp.net-core-webapi

2
推荐指数
4
解决办法
8093
查看次数