重置用户密码

时间:2010-10-01 15:36:43

标签: c# asp.net

我有一台有机器的服务器......

我有一个管理员和多个用户......这些都是Windows用户,不存在于数据库中。

如何重置用户密码....我使用管理员登录并提供需要重置的用户名..

我试过

 string newPassword;

 u = Membership.GetUser(UsernameTextBox.Text, false);

但这不起作用......

任何建议......谢谢

添加用户的代码:

 DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
            DirectoryEntry NewUser = AD.Children.Add(username, "user");
            NewUser.Invoke("SetPassword", new object[] { password });
            NewUser.Invoke("Put", new object[] { "Description", description });
            NewUser.CommitChanges();

3 个答案:

答案 0 :(得分:5)

试试这个

string username = "user";
string password = "newpassword";
MembershipUser mu = Membership.GetUser(username);
mu.ChangePassword(mu.ResetPassword(), password);

如果您的web.config中有要求问题答案为“真”,则在尝试重置密码时会出现错误。

答案 1 :(得分:2)

您可能正在寻找ResetPassword方法。要重置为已知密码,您可以使用以下内容:

MembershipUser currentUser = Membership.GetUser(user_name);
bool bPasswordChanged = false;
bPasswordChanged = currentUser.ChangePassword(currentUser.ResetPassword(), new_password); 

答案 2 :(得分:-1)

我通过这种方法完成了它。但它的工作原理是感谢答案

DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry HostedUser = AD.Children.Find(hostedUserName, "user");

string password = new HostedGuiAddMachines().CreateRandomPassword(8);
HostedUser.Invoke("SetPassword", new object[] { password });
HostedUser.Close();
AD.Close();