So erhalten Sie die Anmelde-SID in C #

8

Wie ruft man die Windows Logon SID in C # .net ab? (nicht die Benutzer-SID, sondern die eindeutige neue für jede Sitzung)

    
Jos 27.01.2010, 10:45
quelle

3 Antworten

6

Ich fürchte, Sie müssen P / Invoke verwenden. Es gibt ein Beispiel, wie man es bei pinvoke.net (siehe unten auf der Seite): %Vor%

Bitte beachten Sie, dass ich das Beispiel geändert habe, indem ich nur eine Zeile geändert habe. Ich habe TOKEN_INFORMATION_CLASS.TokenUser durch TOKEN_INFORMATION_CLASS.TokenSessionId ersetzt, was genau das ist, was Sie brauchen.

Hoffe, das hilft.

Update: Hier ist der funktionierende (zumindest auf meiner Maschine) Code:

%Vor%

N.B. Ich habe es auf meiner x64-Maschine getestet, also bitte achten Sie auf TokenInformation.ToInt64() Code, vielleicht sollten Sie es durch TokenInformation.ToInt32()

ersetzen     
Igor Korkhov 27.01.2010, 11:27
quelle
1

System.Security.Principal.WindowsIdentity.GetCurrent (). User.AccountDomainSid - könnte den Trick machen?

    
SilverSkin 27.01.2010 10:57
quelle
1

Ich weiß, das ist ein alter Post. Ich habe gerade dieses Problem kennengelernt, als ich die ICA-Sitzungs-ID und die RDP-Sitzungs-ID abrufen musste, damit ein Programm die richtigen Variablen für jeden Typ von Remote-Verbindung sammeln konnte. Die aktuelle Sitzungs-ID befindet sich in Regedit HKEY_CURRENT_USER \ Remote *. Da ich keine Alternativen zur WTS finden konnte, poste ich hier meine Lösung.

%Vor%     
BrettKennard 26.07.2017 17:55
quelle

Tags und Links