ASP.Net 用户忘记了密码问题的答案

Posted

技术标签:

【中文标题】ASP.Net 用户忘记了密码问题的答案【英文标题】:ASP.Net User forgot answer to password question 【发布时间】:2011-07-31 02:23:57 【问题描述】:

如何为忘记密码和密码重置问题答案的用户重置密码?我正在使用 ASP.Net 会员资格。

【问题讨论】:

【参考方案1】:

假设您在 Web.config 中的成员资格提供程序(“AspNetSqlMembershipProvider”)具有 requiresQuestionAndAnswer="true",则使用除 requiresQuestionAndAnswer="false" 之外的所有相同设置创建第二个提供程序(例如“AspNetSqlMembershipProviderAdministrativeReset”) .

然后您可以创建一个明确使用第二个提供程序的操作,以允许管理员重置密码而无需正确回答安全问题,如下面的 sn-p:

var provider = Membership.Providers["AspNetSqlMembershipProviderAdministrativeReset"] as MembershipProvider;
var newPassword = provider.ResetPassword(userName, null /* answer */);

【讨论】:

【参考方案2】:

在您网站的管理页面中,您可以通过首先获取用户来简单地重置密码:

// Assume user name is 'theuser'.  Obviously you would get this beforehand
MembershipUser user = Membership.GetUser("theuser");
string newPassword = user.ResetPassword();

您现在将在“newPassword”中获得自动生成的密码。您可以通过电子邮件将其发送给用户。

还有其他方法可以做到这一点。会员数据库非常开放,因此您可以想出输入系统来自己获取所需的新密码并将散列值放入其中。如果您需要更多详细信息,请发表评论。不一定很难。

【讨论】:

以上是关于ASP.Net 用户忘记了密码问题的答案的主要内容,如果未能解决你的问题,请参考以下文章

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

关于在 asp.net mvc 中实现忘记密码功能的一些问题

在默认的 ASP.NET Core 项目中,为啥“忘记密码”功能会要​​求用户输入两次电子邮件?

ASP.NET Identity 重置密码

ASP.NET Core Web API 身份验证

使用 ASP.Net 会员提供商忘记密码?