Share via


ActiveDirectoryMembershipProvider.ResetPassword(String, String) Methode

Definition

Setzt das Kennwort eines Benutzers auf ein neues, automatisch generiertes Kennwort zurück.

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

Parameter

username
String

Der Benutzer, für den das Kennwort zurückgesetzt werden soll.

passwordAnswer
String

Die Kennwortantwort für den angegebenen Benutzer.

Gibt zurück

String

Das neue Kennwort für den angegebenen Benutzer.

Ausnahmen

Die ResetPassword(String, String)-Methode wird aufgerufen, bevor die ActiveDirectoryMembershipProvider-Instanz initialisiert wird.

Der EnablePasswordReset-Eigenschaftswert ist false.

passwordAnswer ist null.

- oder - username ist null.

passwordAnswer ist nach dem Verkürzen leer. - oder - passwordAnswer ist länger als 128 Zeichen.

- oder - username ist leer oder übersteigt die maximale für Benutzernamen zulässige Länge (i. d. R. 256 Zeichen).

- oder - username enthält Kommas.

- oder - Der Benutzername wird userPrincipalName zugeordnet, der username-Parameter enthält jedoch umgekehrte Schrägstriche.

Der Benutzer wird aufgrund von zu vielen fehlgeschlagenen Anmeldeversuchen oder zu vielen Versuchen zum Zurücksetzen der Kennwortantwort gesperrt.

- oder - passwordAnswer stimmt nicht mit der gespeicherten Kennwortantwort überein.

Der in username angegebene Benutzer ist im Active Directory-Datenspeicher nicht vorhanden.

- oder - Ein generiertes Kennwort übergibt keinen benutzerdefinierten Validierungshandler.

- oder - Das generierte Kennwort ist nicht komplex genug, um benutzerdefinierten Kennwortrichtlinien zu entsprechen, die auf dem Active Directory-Server festgelegt wurden.

- oder - Es kann keine sichere Verbindung mit einem Active Directory Application Mode-Server hergestellt werden, um ein neues Kennwort festzulegen.

Unbehandelte Ausnahme.

Hinweise

Die Methode wird von der Membership Klasse aufgerufen, um das Kennwort für einen Benutzer im Active Directory-Datenspeicher auf einen neuen zufällig generierten Wert zurückzusetzen. Das neue Kennwort wird zurückgegeben.

Hinweis

Das durch die ResetPassword Methode erstellte zufällige Kennwort ist nicht garantiert, den regulären Ausdruck in der PasswordStrengthRegularExpression Eigenschaft zu übergeben. Das zufällige Kennwort erfüllt jedoch die kriterien, die von den und MinRequiredNonAlphanumericCharacters den MinRequiredPasswordLength Eigenschaften festgelegt wurden.

Wenn eine falsche Antwort an die ResetPassword Methode angegeben wird, wird der interne Zähler, der ungültige Kennwortantwortversuche nachverfolgt, von einer erhöht. Dies kann dazu führen, dass sich der Benutzer erst anmelden kann, wenn der Sperrstatus durch einen Aufruf der UnlockUser Methode gelöscht wird. Wenn die richtige Kennwortantwort angegeben wird und der Benutzer derzeit nicht gesperrt ist, wird der interne Zähler, der ungültige Kennwortversuche verfolgt, auf Null zurückgesetzt. Weitere Informationen finden Sie in den Ausführungen zur MaxInvalidPasswordAttempts-Eigenschaft und zur PasswordAttemptWindow-Eigenschaft.

Führende und nachfolgende Leerzeichen werden von allen Parameterwerten gekürzt.

Sie können die ResetPassword Methode direkt aufrufen, indem Sie zuerst einen Verweis auf die Instanz aus der ActiveDirectoryMembershipProvider Membership.Provider Eigenschaft abrufen.

Der Anbieter verwendet eine Unterstruktursuche ab dem suchpunkt, der in der Verbindungszeichenfolge angegeben ist. Weitere Informationen zu Verbindungszeichenfolgen finden Sie im ActiveDirectoryMembershipProvider Klassenthema.

Um Kennwörter auf einem Active Directory-Server festzulegen, muss das connectionProtection Attribut auf SignAndSealfestgelegt werden.

Wenn Sie einen ADAM-Server verwenden, kann das connectionProtection Attribut auf festgelegt Nonewerden, aber nur, wenn Sie den ADAM-Server explizit so konfigurieren, dass Kennwortänderungen über unsichere Verbindungen zulässig sind.

Wichtig

Sie können Keine Kennwörter zurücksetzen, es sei denn, die Anmeldeinformationen, die zum Herstellen einer Verbindung mit dem Active Directory-Server verwendet werden, verfügen entweder über Domänenadministratorrechte (nicht empfohlen) oder über das Zugriffsrecht "Kennwort zurücksetzen".

Um ein Kennwort zurückzusetzen, müssen alle folgenden Bedingungen erfüllt sein:

  • Die EnablePasswordReset-Eigenschaft muss auf true festgelegt werden.

  • Das Active Directory-Schema muss geändert werden, um Attribute zum Speichern der Kennwortfrage und -antwort sowie die drei Nachverfolgungsfelder für Kennwortantwortänderungen zu enthalten.

  • attributeMapPasswordAnswer``attributeMapFailedPasswordAnswerTime``attributeMapFailedPasswordAnswerCountDie attributeMapPasswordQuestionAttribute , und attributeMapFailedPasswordAnswerLockedTime die Attribute müssen in der Anwendungskonfigurationsdatei festgelegt werden.

  • Die RequiresQuestionAndAnswer-Eigenschaft muss auf true festgelegt werden.

  • Der Sicherheitskontext für die Verbindung mit dem Active Directory-Datenspeicher (entweder das Prozesskonto oder die expliziten Anmeldeinformationen) muss über ausreichende Berechtigungen zum Ändern von Kennwörtern verfügen. Die Anmeldeinformationen, die zum Herstellen einer Verbindung mit dem Active Directory-Server verwendet werden, verfügen entweder über Domänenadministratorrechte (nicht empfohlen) oder über das Zugriffsrecht "Kennwort zurücksetzen".

Hinweis

Sicherheitsrichtlinien, die auf dem Active Directory-Server festgelegt sind, machen es möglicherweise unmöglich, dass die ResetPassword Methode ein Kennwort generiert, das den Richtlinien entspricht. Die Standardimplementierung der GeneratePassword Methode generiert Kennwörter, die die Standardkennwortrichtlinien für Domänencontroller erfüllen, die Windows Server 2003 SP1 ausführen. Wenn das Kennwort aufgrund von Sicherheitsrichtlinien auf dem Active Directory-Server nicht zurückgesetzt werden kann, wird ein ProviderException Fehler ausgelöst.

Gilt für

Siehe auch