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();
}
}