swift - 如何在 OSX Swift 应用程序中请求管理员登录?

标签 swift xcode macos applescript

我目前正在尝试让应用程序仅在管理员登录名输入对话框时打开。我试过在以下方法下使用 AppleScript:

set adminLogin to do shell script "" with administrator privileges
display dialog adminLogin

这显示了我想要的对话框,我能够将其放入 NSTask 中以执行它。我什至可以获取输出并使用它在 if 语句下关闭应用程序。

我想使用实际的应用程序而不是 osascript 来说明它需要管理员登录才能继续,并且这个 scpt 文件在我编译、构建和存档它以供实际使用后立即消失,这意味着我' d 必须在创建后将此文件重新添加到我为其制作此文件的所有客户。它似乎不太有效,因为它依赖于可能被利用的不同任务来快速登录,而不是使用应用程序持有的相同进程。

有没有办法以编程方式请求管理员登录以继续打开应用程序?我可以使用 CoreLocation 和/或我可以使用 AuthorizationServices() 来执行此任务吗?

最佳答案

看看 LocalAuthentication 框架。 deviceOwnerAuthentication 有一个策略,它处理 Touch ID 和设备密码身份验证。

LocalAuthentication 框架引用:https://developer.apple.com/reference/localauthentication

设备所有者身份验证: https://developer.apple.com/reference/localauthentication/lapolicy/1514164-deviceownerauthentication

关于swift - 如何在 OSX Swift 应用程序中请求管理员登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41147000/

相关文章:

ios - Swift:获取线程 1:发出 SIGABRT 信号,但我的所有 socket 均已连接

ios - Swift 图片点击按钮没有改变

Xcode 在处理 swift 文件时崩溃

cocoa - 某些等效键不能用于 NSMenuItem

objective-c - 设置 NSStatus 项的标题文本颜色

json - 如果 JSON 答案为空,如何防止应用程序崩溃?

objective-c - Target-Action 设计模式是否在 ARC 下变成了坏习惯?

objective-c - 预处理器表达式 Xcode 开头的无效标记

c++ - 倒数计时器线程

core-data - 使用 Swift 的基于文档的应用程序