Active Directory PrincipalContext.ValidateCredentials domain Begriffsklärung
Bin ich den Umgang mit zwei-Domänen - one ist eine Vertrauenswürdige Domäne. Es kann eine JohnSmith auf einer domain und einem anderen JohnSmith auf der anderen. Diese beiden Personen müssen sich in meine Anwendung.
Mein problem: es ist egal welche domain ich-pass-in - dieser-code true zurückgibt! Wie weiß ich, welche JohnSmith anmelden?
static public bool CheckCredentials(
string userName, string password, string domain)
{
using (var context = new PrincipalContext(ContextType.Domain, domain))
{
return context.ValidateCredentials(userName, password);
}
}
InformationsquelleAutor Garfield | 2012-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
ValidateCredentials
arbeitet mituserPrincipalName
Sie vielleicht versuchen, um den ersten parameter (username) die Kombination der login und die domain zu erstellen, die den Benutzernamen[email protected]
versus[email protected]
.InformationsquelleAutor JPBlanc
Können Sie rufen Sie immer den vollständigen DN des Benutzers, der sich angemeldet hat mit
Verwenden Sie die aufwärts -."SamAccountName", um nachfolgende Aufrufe ValidateCredentials inklusive des domain-Namen - Sie können nicht 2 user, die sich mit dem gleichen Attribut "sAMAccountName", nachdem alle!
Dem DistinguishedName wird auf jeden Fall zeigen Sie die JohnSmith logged in.
InformationsquelleAutor gbjbaanb
Basierend auf JPBlanc Antwort, ich habe wieder geschrieben das mein code. Außerdem habe ich einen try/catch-Fall, eine gefälschte Domäne übergeben wird.
InformationsquelleAutor Garfield
Akzeptierte Antwort mit fehl-Domänen, die verschiedene E-Mail-Adressen. Beispiel:
Sofern die Antwort false zurück mit:
Den richtigen Weg zu umfassen, die Benutzer über Domänen ist:
ohne .com-Teil sucht der Benutzer ZU dieser Domäne anstatt auf der Suche für eine E-Mail innerhalb einer globalen domain.
InformationsquelleAutor calcazar