public static void RunWithPrivilege(string privilege, bool enabled, PrivilegedCallback callback, object state) { if (callback == null) { throw new ArgumentNullException("callback"); } Privilege p = new Privilege(privilege); RuntimeHelpers.PrepareConstrainedRegions(); try { if (enabled) { p.Enable(); } else { p.Disable(); } callback(state); } catch { p.Revert(); throw; } finally { p.Revert(); } }
internal static void ExecutePrivileged(IStackWalk permission, PrivilegedCallback callback) { permission.Assert(); try { callback(); } finally { CodeAccessPermission.RevertAssert(); } }
internal static void ExecutePrivileged(IStackWalk permission, PrivilegedCallback callback) { permission.Assert(); try { callback(); } finally { CodeAccessPermission.RevertAssert(); } }
public static void RunWithPrivilege( string privilege, bool enabled, PrivilegedCallback callback, object state) { if ( callback == null ) { throw new ArgumentNullException( "callback" ); } Privilege p = new Privilege( privilege ); try { if (enabled) { p.Enable(); } else { p.Disable(); } callback(state); } catch { p.Revert(); throw; } finally { p.Revert(); } }
public static void RunWithPrivilege(string privilege, bool enabled, PrivilegedCallback callback, object state) { if (callback == null) { throw new ArgumentNullException("callback"); } using(TokenPrivilege p = new TokenPrivilege(privilege)) { RuntimeHelpers.PrepareConstrainedRegions(); try { if (enabled) { p.Enable(); } else { p.Disable(); } callback(state); } finally { p.Revert(); } } }