Autorisierungsdialog ändern, der von AuthorizationCreate () angezeigt wird

9

Blick durch Apples BetterAuthorizationSample und weitere Derivate ( Ссылка ) Ich versuche, eine kleine Änderung an der Anwendung vorzunehmen und ein besseres Verständnis für die gesamte Sicherheit zu erlangen. ServiceManagement-Framework. Daher habe ich eine Schaltfläche hinzugefügt, die den installierten Job durch die Umkehrung von SMJobBless - SMJobRemove () entfernt. Unkompliziert jedoch zeigt der AuthorizationCreate () - Aufruf ein Dialogfeld an, in dem die Berechtigung zum Installieren und Entfernen eines Helfers angegeben und angefordert wird.

Das ist der Dialog, den ich bekomme (mit kSMRightModifySystemDaemons ). Wie Sie sehen können, versucht meine App, ein neues Hilfsprogramm hinzuzufügen. Das verwirrt meine Benutzer, weil die App versucht, das installierte Hilfsprogramm zu entfernen.

Ich suche nach Wissen darüber, wie dieser Dialog geändert wird, um meine tatsächliche Aktion widerzuspiegeln (Job Removal). Es gibt auch einige andere Apps, die den Dialog vollständig anzupassen scheinen - mit eigenem Label und Buttons ..

%Vor%

Ich habe experimentiert, dass das authItem von kSMRightBlessPrivilegedHelper zu kSMRightModifySystemDaemons wechselt, aber das alles änderte den Dialog so, dass "Add" anstelle von "Install" angezeigt wurde

Würde mich hier sehr freuen ...

    
DavidMIRV 29.11.2012, 21:06
quelle

1 Antwort

0

Ich habe das vorher nicht benutzt, aber Ihre Frage interessant gefunden, also habe ich ein wenig die Dokumentation von Apple gelesen und basierend darauf frage ich mich, ob das Einrichten der Umgebung mit kAuthorizationEnvironmentPrompt tun würde, was Sie wollen?

%Vor%

Sie würden ein AuthorizationItem mit diesem und dann ein AuthorizationItemSet erstellen, das dieses enthält, und dann das Set an den AuthorizationCreate -Aufruf für den Parameter environment: übergeben.

Ich würde das versuchen.

Die andere Idee, die ich beim Lesen der Dokumentation hatte, war ein Befehlszeilentool, das das Entfernen und Autorisieren der Ausführung des Befehlszeilentools ("SomethingSomethingHelper") ermöglicht, was für den Benutzer weniger verwirrend sein könnte (also AuthorizationExecuteWithPrivileges verwenden). oder kAuthorizationRightExecute oder was auch immer).

    
Dad 09.12.2013 22:22
quelle

Tags und Links