none
Wie mit PrincipalContext prüfen, ob das Passwort abgelaufen ist? RRS feed

  • 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

    Dienstag, 22. April 2014 11:09

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.

    [1] http://stackoverflow.com/questions/5535829/principalcontext-userprincipal-how-to-know-when-password-expires

    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 
    App-Entwickler-Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei! 

    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
    Dienstag, 22. April 2014 16:10

Alle Antworten