Benutzer mit den meisten Antworten
Wie mit PrincipalContext prüfen, ob das Passwort abgelaufen ist?

Frage
-
Hallo,
ich verwende PrincipalContext (System.DirectoryServices.AccountManagement) um zu prüfen, ob der User in einer Domäne mit dem Passwort existiert.
Das funktioniert bestens.
Nun könnte es sein, dass isValid false ist, weil das Passwort abgelaufen ist.
Wie kann ich prüfen, ob das Passwort abgelaufen ist?using (var principalContext = new PrincipalContext(ContextType.Domain, domainName))
{
var isValid = principalContext.ValidateCredentials(userName, password);
if (!isValid)
{
// hier prüfen, ob oder wann das Passwort abläuft
}
}Alexander
Antworten
-
Hallo Alexander,
mittels folgendem Weg solltest du überprüfen können, ob das Passwort abgelaufen ist:
using (PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domainName)) { bool isValid = principalContext.ValidateCredentials(userName, password); if(!isValid) { UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, userName); DirectoryEntry entry = new DirectoryEntry("LDAP://" + user.DistinguishedName); IADsUser native = (IADsUser)entry.NativeObject;
Console.WriteLine(user.GivenName + "'s password will expire on " + native.PasswordExpirationDate); } }
Dies habe ich aus [1] entnommen und implementiert. Um nun zu überprüfen ob das Passwort abgelaufen ist müsstest du das jetzige timestamp mit dem timestamp des Passworts vergleichen.
Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Artur Schnell
App-Entwickler-Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline: http://www.msdn-online.de/Hotline
Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen, Informationen zur Datensicherheitsowie die gesonderten Nutzungsbedingungen für die App-Entwickler-Hotline.- Als Antwort markiert AlexanderRi Donnerstag, 24. April 2014 06:19
Alle Antworten
-
Hallo Alexander,
mittels folgendem Weg solltest du überprüfen können, ob das Passwort abgelaufen ist:
using (PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domainName)) { bool isValid = principalContext.ValidateCredentials(userName, password); if(!isValid) { UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, userName); DirectoryEntry entry = new DirectoryEntry("LDAP://" + user.DistinguishedName); IADsUser native = (IADsUser)entry.NativeObject;
Console.WriteLine(user.GivenName + "'s password will expire on " + native.PasswordExpirationDate); } }
Dies habe ich aus [1] entnommen und implementiert. Um nun zu überprüfen ob das Passwort abgelaufen ist müsstest du das jetzige timestamp mit dem timestamp des Passworts vergleichen.
Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Artur Schnell
App-Entwickler-Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline: http://www.msdn-online.de/Hotline
Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen, Informationen zur Datensicherheitsowie die gesonderten Nutzungsbedingungen für die App-Entwickler-Hotline.- Als Antwort markiert AlexanderRi Donnerstag, 24. April 2014 06:19
-
Hi,
Hat Dir die Antwort von Artur geholfen ? Wenn ja - bitte markiere diese "als Antwort".
Danke und Gruß,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.