你好,
我用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中重置密码?充其量只是一些例子.
先感谢您.