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
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.