public static void RunWithPrivilege(string privilege, bool enabled, PrivilegedHelper helper) { if (helper == null) { throw new ArgumentNullException("helper"); } Contract.EndContractBlock(); Privilege p = new Privilege(privilege); try { if (enabled) { p.Enable(); } else { p.Disable(); } helper(); } finally { p.Revert(); } }
public static void RunWithPrivilege(string privilege, bool enabled, PrivilegedHelper helper) { if (helper == null) { throw new ArgumentNullException(nameof(helper)); } Privilege p = new Privilege(privilege); try { if (enabled) { p.Enable(); } else { p.Disable(); } helper(); } catch { p.Revert(); throw; } finally { p.Revert(); } }
public static void RunWithPrivilege(string privilege, bool enabled, PrivilegedHelper helper) { if (helper == null) { throw new ArgumentNullException(); } using (Privilege privilege2 = new Privilege(privilege)) { if (enabled) { privilege2.Enable(); } else { privilege2.Disable(); } helper(); } }
public static void RunWithPrivilege( string privilege, bool enabled, PrivilegedHelper helper ) { if ( helper == null ) { throw new ArgumentNullException( "helper" ); } Contract.EndContractBlock(); Privilege p = new Privilege( privilege ); RuntimeHelpers.PrepareConstrainedRegions(); try { if (enabled) { p.Enable(); } else { p.Disable(); } helper(); } finally { p.Revert(); } }