protected override void Dispose(bool disposing) { if (impersonationContext != null) { impersonationContext.Undo(); } if (disposing) { if (impersonationContext != null) { impersonationContext.Dispose(); } } if (userToken != IntPtr.Zero) { NativeFunctions.CloseHandle(userToken); } base.Dispose(disposing); }