Bạn không thể thay đổi mật khẩu nếu requiresQuestionAndAnswer = "true"
tôi đã làm việc xung quanh cho
Created hai nhà cung cấp thành viên này trong web.config
tôi đang sử dụng nhà cung cấp AspNetSqlMembershipProviderReset để đặt lại mật khẩu vì nó có requireQuestionAndAnswer = false trong đó AspNetSqlMembershipProvider là nhà cung cấp mặc định được sử dụng.
tôi đã viết mã sau để đặt lại mật khẩu cho người dùng.
công bool ResetUserPassword (String psUserName, String psNewPassword) { thử { // Lấy chi tiết người dùng thành viên sử dụng cung cấp thành viên secound với yêu cầu trả lời câu hỏi thiết lập là false.
MembershipUser currentUser = Membership.Providers["AspNetSqlMembershipProviderReset"].GetUser(psUserName,false);
//Reset the user password.
String vsResetPassword = currentUser.ResetPassword();
//Change the User password with the required password
currentUser.ChangePassword(vsResetPassword, psNewPassword);
//Changed the comments to to force the user to change the password on next login attempt
currentUser.Comment = "CHANGEPASS";
//Check if the user is locked out and if yes unlock the user
if (currentUser.IsLockedOut == true)
{
currentUser.UnlockUser();
}
Membership.Providers["AspNetSqlMembershipProviderReset"].UpdateUser(currentUser); return true;
}
catch (Exception ex)
{
throw ex;
return false;
}
}
Nguồn
2011-02-04 16:38:09
bạn nên tách riêng câu hỏi của mình và thêm câu trả lời. –
@mcqwerty, bây giờ chúng tôi đã tách câu trả lời của bạn, bạn nên "chấp nhận" câu trả lời của riêng bạn – harriyott
Công việc tuyệt vời, tôi đã làm điều này với phiên bản ChangePassword của chúng tôi (Admin thay đổi mật khẩu cho người dùng);) – CheGueVerra