Laden...

NDS/eDirectory - aktueller User ermitteln?

Erstellt von CaptainIglo vor 15 Jahren Letzter Beitrag vor 11 Jahren 2.064 Views
C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren
NDS/eDirectory - aktueller User ermitteln?

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

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

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);
J
2 Beiträge seit 2012
vor 11 Jahren

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ß

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 11 Jahren

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

J
2 Beiträge seit 2012
vor 11 Jahren

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?

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 11 Jahren

Sorry, da bin ich jetzt überfragt...