如何以管理方式为忘记密码的 ASP.net 身份用户设置新密码?

Posted

技术标签:

【中文标题】如何以管理方式为忘记密码的 ASP.net 身份用户设置新密码?【英文标题】:How do I administratively set a new password for ASP.net Identity User who forgot their password? 【发布时间】:2015-11-28 02:59:14 【问题描述】:

我不是在寻找涉及用户、生成令牌和发送电子邮件以重置用户密码的解决方案。

场景是用户联系管理员并要求他们重置密码(内部组织 Web 应用程序)。然后他们会被告知新的临时密码是什么,以便他们可以登录并更改它。

我没有看到可以让我执行上述操作的功能。我的尝试:

string passwordToken = await UM.GeneratePasswordResetTokenAsync(user.Id);

IdentityResult res = await UM.ResetPasswordAsync(user.Id, passwordToken, "newPassword#@!$%"); 

UM 是 UserManager。

我收到错误“未注册 IUserTokenProvider”。我认为 GeneratePasswordResetToken 是导致错误的原因。如果有,为什么?

我该如何正确地做我需要的事情?

【问题讨论】:

【参考方案1】:

使用RemovePasswordAsyncAddPasswordAsync 的组合

UserManager.RemovePasswordAsync(user.Id);
UserManager.AddPasswordAsync(user.Id, tempPassword);

【讨论】:

用户忘记密码,无法使用此功能。

以上是关于如何以管理方式为忘记密码的 ASP.net 身份用户设置新密码?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Identity 重置密码

ASP.NET Membership 作为用户登录

membership与成员资格

使用 ASP.NET 身份重置密码时令牌无效

Asp.Net Identity 2 无法重置密码明文?

Membership 介绍