Hallo,
ich bin gerade dabei, bei einer WinForms-Anwendung eine Authentifizierung über Local Directories zu machen.
Jetzt habe ich das Problem, dass ich keine Möglichkeit gefunden habe, bei einem Client der in einem Novel NDS/eDirectory eingeloggt ist, herauszufinden, mit welchem Usernamen er gerade eingeloggt ist.
Weiß jemand wie ich das abfragen kann?
mfg
Capt.Iglo
Bin im offiziellen Novell-Forum an eine Lösung gestoßen (worden), welche "meistens" zu funktionieren scheint:
Link zum Beitrag
Kurzerklärung wie's geht:
* Novell NDK/CLIB herunterladen
* netwin32.dll aus dem Archiv ins Ausgabeverzeichnis des Projektes legen (oder dem Projekt hinzufügen und Copy to Outputdirectory einschalten)
* externe Funktionen refrenzieren:
[DllImport("netwin32.dll", EntryPoint = "NWDSCreateContextHandle")]
public static extern int NWDSCreateContextHandle(ref int context);
[DllImport("netwin32.dll", EntryPoint = "NWDSWhoAmI")]
public static extern int NWDSWhoAmI(int context, StringBuilder NovellUserId);
[DllImport("netwin32.dll", EntryPoint = "NWDSFreeContext")]
public static extern int NWDSFreeContext(int context);
* Username abfragen:
int context = 0;
NWDSCreateContextHandle(ref context);
StringBuilder username = new StringBuilder(256);
NWDSWhoAmI(context, username);
labelUserName.Text = username.ToString();
NWDSFreeContext(context);
Bin im Moment vor dem selben Problem. Hat da jemand eine Lösung?
Der User wird bei mir ausgelesen. Es scheitert aber am Context. Dort kommt nur eine "1" als Antwort.
gruß
Ja, habe das damals gelöst, genau kann ich es dir nicht mehr erklären (ist einfach zu lange her), aber das Projekt ist inzwischen open source:
http://memorylifter.codeplex.com/SourceControl/changeset/view/11562#164642
In der Methode "GetLocalDirectoryUser" sollte das drinnen sein.
lgC
Sehe ich das richtig, dass es dir nur darum ging, den aktuellen User auszulesen?
Es ist mir nämlich auch wichtig den Context zu erfahren, damit man auch sicher ist, um welchen User es genau geht. Wir haben nämlich übe 2000 User und da kann es schon mehr als nur einen "Müller" geben.
Kannst du mir da auch was sagen?