在Web管理工具中更改密码而无需输入旧密码

3

有没有机会在不询问旧密码的情况下更改通过网站管理工具创建的登录用户的密码。

2个回答

4

我相信只能通过编程实现。步骤如下:

首先编辑 web.config 文件以启用密码重置,方法如下:

<?xml version="1.0"?>
<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider" connectionStringName="...." applicationName="..."
    enablePasswordReset="true"
    type="System.Web.Security.SqlMembershipProvider" />
  </providers>
</membership>

然后编写一些代码,首先重置密码以获取临时密码,然后使用此临时密码更改为“最终”密码:

MembershipUser aspNetUser = Membership.GetUser(username);
string tempPassword = aspNetUser.ResetPassword()
aspNetUser.ChangePassword(tempPassword, newPassword)

2
我尝试了@Guido的解决方案,但它并没有起作用(ResetPassword方法抛出不支持的异常)。我的做法是:
        string tmptoken = WebSecurity.GeneratePasswordResetToken("UserName");
        WebSecurity.ResetPassword(tmptoken , "newPassword");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接