我有一台有机器的服务器......
我有一个管理员和多个用户......这些都是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();
答案 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();