【发布时间】:2011-07-31 02:23:57
【问题描述】:
如何为忘记密码和密码重置问题答案的用户重置密码?我正在使用 ASP.Net 会员资格。
【问题讨论】:
标签: asp.net-membership forgot-password
如何为忘记密码和密码重置问题答案的用户重置密码?我正在使用 ASP.Net 会员资格。
【问题讨论】:
标签: asp.net-membership forgot-password
假设您在 Web.config 中的成员资格提供程序(“AspNetSqlMembershipProvider”)具有 requiresQuestionAndAnswer="true",则使用除 requiresQuestionAndAnswer="false" 之外的所有相同设置创建第二个提供程序(例如“AspNetSqlMembershipProviderAdministrativeReset”) .
然后您可以创建一个明确使用第二个提供程序的操作,以允许管理员重置密码而无需正确回答安全问题,如下面的 sn-p:
var provider = Membership.Providers["AspNetSqlMembershipProviderAdministrativeReset"] as MembershipProvider;
var newPassword = provider.ResetPassword(userName, null /* answer */);
【讨论】:
在您网站的管理页面中,您可以通过首先获取用户来简单地重置密码:
// Assume user name is 'theuser'. Obviously you would get this beforehand
MembershipUser user = Membership.GetUser("theuser");
string newPassword = user.ResetPassword();
您现在将在“newPassword”中获得自动生成的密码。您可以通过电子邮件将其发送给用户。
还有其他方法可以做到这一点。会员数据库非常开放,因此您可以想出输入系统来自己获取所需的新密码并将散列值放入其中。如果您需要更多详细信息,请发表评论。不一定很难。
【讨论】: