internal AuthorizationRights ToAuthorizationRights() { // NOTE: this is #define, not a resolvable symbol (also deprecated in 10.7) const string kAuthorizationRightExecute = "system.privilege.admin"; var rights = new AuthorizationRights(); if (PathToSystemPrivilegeTool != null) { rights.Add(kAuthorizationRightExecute, PathToSystemPrivilegeTool); } return(rights); }
public static Authorization Create( AuthorizationRights rights, AuthorizationEnvironment environment, AuthorizationFlags flags) { NativeAuthorizationItemSet rightsNative = new NativeAuthorizationItemSet(); NativeAuthorizationItemSet *rightsPtr = null; NativeAuthorizationItemSet envNative = new NativeAuthorizationItemSet(); NativeAuthorizationItemSet *envPtr = null; int code; IntPtr auth; try { if (rights != null && rights.Count > 0) { rights.ToNative(ref rightsNative); rightsPtr = &rightsNative; } if (environment != null) { environment.ToAuthorizationItemSet().ToNative(ref envNative); if (envNative.count > 0) { envPtr = &envNative; } } code = AuthorizationCreate(rightsPtr, envPtr, flags, out auth); if (code != 0) { return(null); } return(new Authorization(auth)); } finally { AuthorizationItemSet.FreeNative(rightsPtr); AuthorizationItemSet.FreeNative(envPtr); } }