ich möchte ein Ticketsystem mit einer GUI und einer Benutzeranmeldung über eine LDAP Anbindung in C# programmieren. Nun bin ich mittlerweile schon auf Stackoverflow, mycsharp etc. gewesen, um mir gewisse Information über die Herangehensweise von solch einem Projekt (KEIN Abschlussprojekt) herauszulesen. Ich lerne aktuell den FISI und bin im 3. Lj - demnach kein AE'ler aber mit meinem Thema schon im richtigen Forum. Die Authentifizierung mit dem DomAdmin funktioniert. Mit dem Haltepunkt und dem Curser konnte ich sehen, dass er die OU's auch auslesen konnte aber ich weiß nicht, wie ich den Code ideal auf die Abfrage der Benutzerdaten vorbereite, um ihn später an der richtigen Stelle zu importieren. Es ist wie "ein Brett vor'm Kopp'" und ein Hauch von Verzweiflung. Wer kann helfen?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
namespace AdTest
{
class Program
{
static void Main(string[] args)
{
string domain = "172.16.112.30";
string user = "Administrator";
string password = "HALLO123";
Authenticate(domain, user, password);
}
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;
}
}
}
Frage
varafisi
Mahlzeit,
ich möchte ein Ticketsystem mit einer GUI und einer Benutzeranmeldung über eine LDAP Anbindung in C# programmieren. Nun bin ich mittlerweile schon auf Stackoverflow, mycsharp etc. gewesen, um mir gewisse Information über die Herangehensweise von solch einem Projekt (KEIN Abschlussprojekt) herauszulesen. Ich lerne aktuell den FISI und bin im 3. Lj - demnach kein AE'ler aber mit meinem Thema schon im richtigen Forum. Die Authentifizierung mit dem DomAdmin funktioniert. Mit dem Haltepunkt und dem Curser konnte ich sehen, dass er die OU's auch auslesen konnte aber ich weiß nicht, wie ich den Code ideal auf die Abfrage der Benutzerdaten vorbereite, um ihn später an der richtigen Stelle zu importieren. Es ist wie "ein Brett vor'm Kopp'" und ein Hauch von Verzweiflung. Wer kann helfen?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Security; using System.DirectoryServices; using System.DirectoryServices.ActiveDirectory; namespace AdTest { class Program { static void Main(string[] args) { string domain = "172.16.112.30"; string user = "Administrator"; string password = "HALLO123"; Authenticate(domain, user, password); } 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; } } }
2 Antworten auf diese Frage
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden