Feedback

C# - LDAP - Authentifizieren eines Benutzers in der Domäne

Veröffentlicht von am 21.11.2007
(1 Bewertungen)
Kann ein Benutzer in der Domäne authentifiziert werden?

UPDATE:
Nun wird das Passwort dem Active Directory verschlüsselt übermittelt. Danke an Volker Steitz für den Hinweiß.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

using System.Security;
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;

public static bool Authenticate(string domain, string username, string password)
{
    SecureString pwd = new SecureString();
    bool bAuth = false;
    DirectoryEntry entry = null;

    //Durchlaufe das Passwort und hänge es dem SecureString an
    foreach (char c in password)
    {
        pwd.AppendChar(c);
    }

    //Bewirkt, dass das Passwort nicht mehr verändert werden kann
    pwd.MakeReadOnly();

    //Passwort wird einem Pointer übergeben, damit dieser später "entschlüsselt" werden kann
    IntPtr pPwd = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(pwd);            

    try
    {
        entry = new DirectoryEntry(string.Concat(@"LDAP://", domain), username, System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd));
        object nativeObject = entry.NativeObject;
        bAuth = true;
    }
    catch (Exception)
    {
        bAuth = false;
    }
    finally
    {
        entry.Close();
        entry.Dispose();
    }
    return bAuth;
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!