Win32-Benutzeridentitätswahn

8

Ich habe einen Beispielcode im Codeprojekt gefunden, der den Identitätswechsel durch den Benutzer ermöglicht.

Dieser Code funktioniert durch Importieren der folgenden nicht verwalteten Win32-API-Funktionen:

%Vor%

Diese Funktionen werden verwendet, um die Identität des Zielbenutzers anzunehmen, dann einige Operationen auszuführen und den Identitätswechselkontext wiederherzustellen. Die Identität des Benutzers wird wie folgt angenommen:

%Vor%

Ich versuche zu verstehen, warum dieser Code zuerst das erforderliche Token mithilfe von LogonUser erhält und dann dieses Token dupliziert, bevor er den Identitätswechsel auf dem duplizierten Token durchführt. Warum imitieren Sie nicht einfach mit dem Token, das Sie von der Methode LogonUser erhalten haben.

Offensichtlich versteht die Person, die diesen Artikel geschrieben hat, das besser als ich, so dass es scheint, dass ich etwas verpasse. Könnte ich bitte eine Erklärung erhalten, warum der scheinbar überflüssige Token-Duplizierungsschritt dieses Prozesses erforderlich ist?

    
Sean Hunter 15.05.2011, 06:28
quelle

1 Antwort

7

Soweit ich weiß, sollte token, das an WindowsIdentity ctor übergeben wird, ein Identitätswechsel-Token sein. Also, der Autor dieses Codes mit

%Vor%

zum Erstellen eines Identitätswechsel-Tokens von primäres Token , zurückgegeben von LogonUser (). Diese '2' magische Zahl steht für SecurityImpersonation Member von SECURITY_IMPERSONATION_LEVEL enum.

Links:

Ссылка

Ссылка

Ссылка

    
torvin 15.05.2011, 07:02
quelle

Tags und Links