Udostępnij za pośrednictwem


ActiveDirectoryMembershipProvider.ResetPassword(String, String) Metoda

Definicja

Resetuje hasło użytkownika do nowego, automatycznie wygenerowanego hasła.

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

Parametry

username
String

Użytkownik do resetowania hasła.

passwordAnswer
String

Odpowiedź na hasło dla określonego użytkownika.

Zwraca

Nowe hasło dla określonego użytkownika.

Wyjątki

Metoda jest wywoływana ResetPassword(String, String) przed zainicjowanym wystąpieniem ActiveDirectoryMembershipProvider .

Wartość EnablePasswordReset właściwości to false.

passwordAnswer to null.

-lub-

username to null.

passwordAnswer jest puste po przycinaniu

-lub-

passwordAnswer przekracza 128 znaków.

-lub-

username jest pusta lub przekracza maksymalną dozwoloną długość nazw użytkowników (zwykle 256 znaków).

-lub-

username zawiera przecinki.

-lub-

Nazwa użytkownika jest mapowana, userPrincipalName ale username parametr zawiera ukośniki odwrotne.

Użytkownik jest zablokowany z powodu zbyt wielu nieudanych prób logowania lub zbyt wielu prób zresetowania odpowiedzi na hasło.

-lub-

passwordAnswer nie jest zgodna z przechowywaną odpowiedzią na hasło.

Użytkownik określony w pliku username nie istnieje w magazynie danych usługi Active Directory.

-lub-

Wygenerowane hasło nie przekazuje niestandardowej procedury obsługi walidacji.

-lub-

Wygenerowane hasło nie jest wystarczająco złożone, aby spełnić wymagania niestandardowych zasad haseł ustawionych na serwerze usługi Active Directory.

-lub-

Nie można nawiązać bezpiecznego połączenia z serwerem trybu aplikacji usługi Active Directory w celu ustawienia nowego hasła.

Wystąpił nieobsługiwany wyjątek.

Uwagi

Metoda jest wywoływana przez klasę Membership w celu zresetowania hasła użytkownika w magazynie danych usługi Active Directory do nowej wygenerowanej losowo wartości. Zostanie zwrócone nowe hasło.

Uwaga

Losowe hasło utworzone przez metodę ResetPassword nie ma gwarancji przekazania wyrażenia regularnego PasswordStrengthRegularExpression we właściwości . Jednak losowe hasło spełnia kryteria określone przez MinRequiredPasswordLength właściwości i MinRequiredNonAlphanumericCharacters .

Jeśli do metody zostanie podana ResetPassword nieprawidłowa odpowiedź, wewnętrzny licznik, który śledzi nieprawidłowe próby odpowiedzi na hasło, jest zwiększany o jeden. Może to spowodować, że użytkownik nie może się zalogować, dopóki stan blokady nie zostanie wyczyszczone przez wywołanie UnlockUser metody . Jeśli podano poprawną odpowiedź na hasło, a użytkownik nie jest obecnie zablokowany, wewnętrzny licznik, który śledzi nieprawidłowe próby hasła, zostanie zresetowany do zera. Aby uzyskać więcej informacji, zobacz właściwości MaxInvalidPasswordAttempts i PasswordAttemptWindow.

Spacje wiodące i końcowe są przycinane ze wszystkich wartości parametrów.

Metodę ResetPassword można wywołać bezpośrednio, uzyskując najpierw odwołanie do ActiveDirectoryMembershipProvider wystąpienia z Membership.Provider właściwości.

Dostawca używa wyszukiwania poddrzewa rozpoczynającego się od punktu wyszukiwania określonego w parametrach połączenia. Zobacz temat klasy, ActiveDirectoryMembershipProvider aby uzyskać więcej informacji na temat parametrów połączenia.

Aby ustawić hasła na serwerze usługi Active Directory, connectionProtection atrybut musi być ustawiony na SignAndSealwartość .

W przypadku korzystania z serwera ADAM atrybut można ustawić na None, ale tylko wtedy, connectionProtection gdy jawnie skonfigurujesz serwer ADAM, aby zezwolić na zmiany haseł w niezabezpieczonych połączeniach.

Ważne

Nie można zresetować haseł, chyba że poświadczenia używane do nawiązywania połączenia z serwerem usługi Active Directory mają uprawnienia administratora domeny (niezalecane) lub "resetowanie hasła" prawa dostępu.

Aby zresetować hasło, wszystkie następujące warunki muszą być spełnione:

  • Właściwość musi być ustawiona EnablePasswordReset na true.

  • Schemat usługi Active Directory należy zmodyfikować tak, aby zawierał atrybuty do przechowywania pytania i odpowiedzi na hasło oraz trzy pola śledzenia zmian odpowiedzi na hasło.

  • Atrybuty attributeMapPasswordQuestion, attributeMapPasswordAnswer, attributeMapFailedPasswordAnswerCount, attributeMapFailedPasswordAnswerTimei attributeMapFailedPasswordAnswerLockedTime muszą być ustawione w pliku konfiguracji aplikacji.

  • Właściwość musi być ustawiona RequiresQuestionAndAnswer na true.

  • Kontekst zabezpieczeń umożliwiający nawiązanie połączenia z magazynem danych usługi Active Directory (konto procesu lub jawne poświadczenia) musi mieć wystarczające uprawnienia do zmiany haseł. Poświadczenia używane do nawiązywania połączenia z serwerem usługi Active Directory mają uprawnienia administratora domeny (niezalecane) lub "resetowanie hasła" prawa dostępu.

Uwaga

Zasady zabezpieczeń ustawione na serwerze usługi Active Directory mogą uniemożliwić ResetPassword metodę wygenerowania hasła spełniającego zasady. Domyślna implementacja GeneratePassword metody spowoduje wygenerowanie haseł spełniających domyślne zasady haseł na kontrolerach domeny z systemem Windows Server 2003 z dodatkiem SP1. Jeśli nie można zresetować hasła z powodu zasad zabezpieczeń na serwerze usługi Active Directory, ProviderException zostanie zgłoszony błąd.

Dotyczy

Zobacz też