private static ImpersonateAndTryCode ( Object helper ) : void | ||
helper | Object | |
return | void |
private static void ImpersonateAndTryCode(Object helper)
{
ExecuteHelper execHelper = (ExecuteHelper)helper;
RuntimeHelpers.PrepareConstrainedRegions();
try { }
finally
{
if (Interop.Advapi32.ImpersonateNamedPipeClient(execHelper._handle))
{
execHelper._mustRevert = true;
}
else
{
execHelper._impersonateErrorCode = Marshal.GetLastWin32Error();
}
}
if (execHelper._mustRevert)
{ // impersonate passed so run user code
execHelper._userCode();
}
}