Rückgabewert von WindowsIdentity.GetCurrent()

21/05/2009 - 12:19 von Stefan Hoffmann | Report spam
hi,

ich bin gerade am Spielen im Bereich Impersonation. Hierbei stellt sich
mir folgende Frage:

Kann das einache, parameterlose

WindowsIdentity.GetCurrent()

ein null zurückliefern?


Als Weiterung:
Kann ein der überladenen Methoden

WindowsIdentity.GetCurrent(bool ifImpersonating)

oder

WindowsIdentity GetCurrent(TokenAccessLevels desiredAccess)

ein null zurückliefern?


mfG
 

Lesen sie die antworten

#1 Frank Dzaebel
21/05/2009 - 13:35 | Warnen spam
Hallo Stefan,

Kann das einache, parameterlose
WindowsIdentity.GetCurrent()
ein null zurückliefern?



Zwar wrappt das letztlich nur:

[OpenProcessToken Function (Windows)]
http://msdn.microsoft.com/en-us/library/aa379295(VS.85).aspx

Letztlich bekommst Du entweder eine SecurityException,
oder einen WindowsIdentity-Instanz zurück. Wobei
theoretisch der Token "IntPtr.Zero" sein könnte.

Mal ein "gestelltes" Beispiel:

ConstructorInfo[] ci = typeof(WindowsIdentity).GetConstructors(
BindingFlags.NonPublic | BindingFlags.Instance);
WindowsIdentity wi = ci[0].Invoke(null) as WindowsIdentity;

Da alle Methoden von GetCurrent letztlich über
ein GetCurrentInternal laufen (Schaue in den Reflector),
hast Du auch unabhàngig davon etwa gleiches
Verhalten diesbzgl..


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen