我已经搜索和试验了将近四个小时,所以我要直截了本地问:
如何正确使用 Authorization Services向用户显示系统级授权窗口的 API,与您在系统偏好设置中单击锁图标时看到的窗口相同吗?
据我所知,如果您想以编程方式执行此操作,并且如果您的目标是调用通常需要通过 sudo
调用的可执行文件,则无法使用 Cocoa 来执行此操作(在我的例子中,/usr/bin/pmset
)你在没有桨的小溪上。
我挑战你,我恳求你:请赐教。
谢谢。 :)
最佳答案
显然,您应该进行真正的错误处理等操作,但这里是一个帮助您入门的示例。
AuthorizationRef auth = NULL;
OSStatus err;
err = AuthorizationCreate(NULL,
NULL,
kAuthorizationFlagExtendRights|kAuthorizationFlagInteractionAllowed,
&auth);
if( err != errAuthorizationSuccess ) {
fprintf(stderr, "oops: %ld\n", (long int)err);
exit(-1);
}
char *opts[] = { "some", "parameters", "to", "pm", NULL };
err = AuthorizationExecuteWithPrivileges(
auth,
"/usr/bin/pmset",
kAuthorizationFlagDefaults,
opts,
NULL);
AuthorizationFree(auth, kAuthorizationFlagDefaults);
if( err != errAuthorizationSuccess ) {
fprintf(stderr, "oops: %ld\n", (long int)err);
exit(-1);
}
关于c - 我如何实际使用授权服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452189/