ActiveDirectoryMembershipProvider.ResetPassword(String, String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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
,attributeMapFailedPasswordAnswerTime
iattributeMapFailedPasswordAnswerLockedTime
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.