SFAuthorization
SFAuthorization класс позволяет Вам ограничивать доступ пользователя к определенным функциям в Вашем приложении Mac или демоне.
SFAuthorization класс является интерфейсом Objective-C для некоторых функций в Authorization Services API. Можно использовать authorizationRef метод для получения ссылки авторизации, привыкшей в других вызовах к функциям Authorization Services. Authorization Services API документируется в Ссылку Authorization Services C.
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSObject
Оператор импорта
Swift
import SecurityFoundation
Objective C
@import SecurityFoundation;
Доступность
Доступный в OS X v10.3 и позже
-
Возвращает объект авторизации, инициализированный со стандартной средой, флагами и правами.
Объявление
Swift
class func authorization() -> AnyObject!Objective C
+ (id)authorizationВозвращаемое значение
Объект авторизации.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает объект авторизации, инициализированный с указанными флагами, правами и средой.
Объявление
Swift
class func authorizationWithFlags(_flags: AuthorizationFlags, rightsrights: UnsafePointer<AuthorizationRights>, environmentenvironment: UnsafePointer<AuthorizationEnvironment>) -> AnyObject!Objective C
+ (id)authorizationWithFlags:(AuthorizationFlags)flagsrights:(const AuthorizationRights *)rightsenvironment:(const AuthorizationEnvironment *)environmentПараметры
flagsНемного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaultsесли никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRightsмаска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRightsиkAuthorizationFlagExtendRightsмаски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorizeиkAuthorizationFlagExtendRightsмаски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRightsмаска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
rightsУказатель на ряд прав авторизации Вы создаете. Передача
NULLесли приложение не требует никаких прав в это время.environmentДанные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security.framework/Headers/AuthorizationTags.h. Данные, переданные в этом параметре, не хранятся в ссылке авторизации; это используется только во время авторизации. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment.Возвращаемое значение
Объект авторизации.
Обсуждение
Обычно, такая инициализация не требуется, поскольку Вы передаете во флагах, правах и данных о состоянии окружающей среды, когда Вы запрашиваете авторизацию.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Инициализирует объект авторизации со стандартной средой, флагами и правами.
Объявление
Swift
init!()Objective C
- (id)initОператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.5 и позже.
-
Инициализирует объект авторизации с указанными флагами, правами и средой.
Объявление
Swift
init!(flagsflags: AuthorizationFlags, rightsrights: UnsafePointer<AuthorizationRights>, environmentenvironment: UnsafePointer<AuthorizationEnvironment>)Objective C
- (id)initWithFlags:(AuthorizationFlags)flagsrights:(const AuthorizationRights *)rightsenvironment:(const AuthorizationEnvironment *)environmentПараметры
flagsНемного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaultsесли никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRightsмаска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRightsиkAuthorizationFlagExtendRightsмаски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorizeиkAuthorizationFlagExtendRightsмаски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRightsмаска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
rightsУказатель на ряд прав авторизации Вы создаете. Передача
NULLесли приложение не требует никаких прав в это время.environmentДанные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment.Возвращаемое значение
Объект авторизации.
Обсуждение
Можно использовать этот метод для инициализации объекта авторизации. Обычно, такая инициализация не требуется, поскольку Вы передаете во флагах, правах и данных о состоянии окружающей среды, когда Вы запрашиваете авторизацию.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает ссылку авторизации для этого объекта.
Объявление
Swift
func authorizationRef() -> AuthorizationRefObjective C
- (AuthorizationRef)authorizationRefВозвращаемое значение
Ссылка авторизации.
Обсуждение
Можно использовать ссылку авторизации в вызовах к функциям Authorization Services.
Поскольку дополнительная информация видит Ссылку Authorization Services C.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
-
permitWithRights:flags:environment:authorizedRights: - permitWithRights:flags:environment:authorizedRights:(OS X v10.5)Авторизовывает и предварительно авторизовывает права получить доступ к привилегированной работе и возвращает предоставленные права.
Оператор осуждения
Использовать
obtainWithRights:flags:environment:authorizedRights:error:вместо этого.Объявление
Objective C
- (OSStatus)permitWithRights:(const AuthorizationRights *)rightsflags:(AuthorizationFlags)flagsenvironment:(const AuthorizationEnvironment *)environmentauthorizedRights:(AuthorizationRights *)authorizedRightsПараметры
rightsУказатель на ряд прав авторизации Вы создаете. Передача
NULLесли приложение не требует никаких прав в это время.flagsНемного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaultsесли никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRightsмаска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRightsиkAuthorizationFlagExtendRightsмаски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorizeиkAuthorizationFlagExtendRightsмаски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRightsмаска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
environmentДанные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment.authorizedRightsУказатель на недавно выделенный
AuthorizationRightsструктура. По возврату эта структура содержит права, предоставленные Концепцией безопасности. Если Вы не запрашиваете эту информацию, передачуNULL. Если Вы указываетеkAuthorizationFlagPreAuthorizeмаска вflagsпараметр, метод возвращает все требуемые права, включая не предоставленных, но флаги прав, которые не могли быть предварительно авторизованы, включаютkAuthorizationFlagCanNotPreAuthorizeбит.Освободите память, связанную с этим набором прав путем вызывания функции Authorization Services
AuthorizationFreeItemSet.Обсуждение
Существует три главных причины использовать этот метод. Первая причина состоит в том, чтобы предварительно авторизовать права путем указания
kAuthorizationFlagPreAuthorize,kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации. Когда право имеет нулевой тайм-аут, предварительная авторизация является самой полезной. Например, можно предварительно авторизовать в приложении и если оно успешно выполняется, вызовите инструмент помощника и запросите авторизацию. Если Концепция безопасности не может позже авторизовать указанные права, это устраняет вызов инструмента помощника.Вторая причина использовать этот метод состоит в том, чтобы авторизовать права прежде, чем выполнить привилегированную работу путем указания
kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации.Третья причина использовать этот метод состоит в том, чтобы авторизовать частичные права. Путем указания
kAuthorizationFlagPartialRights,kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации, Концепция безопасности предоставляет все права, которые она может авторизовать. По возврату авторизованный набор содержит все права.Если Вы не указываете
kAuthorizationFlagPartialRightsмаска и Концепция безопасности отклоняют по крайней мере одно право, тогда состояние этого метода по возвратуerrAuthorizationDenied.Если Вы не указываете
kAuthorizationFlagInteractionAllowedмаска и Концепция безопасности требуют взаимодействия с пользователем, тогда состояние этого метода по возвратуerrAuthorizationInteractionNotAllowed.Если Вы указываете
kAuthorizationFlagInteractionAllowedмаска и пользователь отменяют процесс аутентификации, тогда состояние этого метода по возвратуerrAuthorizationCanceled.Специальные замечания
authorizedRightsпараметр не поддерживается в OS X v10.3; используйте функцию Authorization ServicesAuthorizationCopyRightsвместо этого. В OS X v10.3 существует ошибка в подписи в заголовочном файле для этого параметра. Если Вы передаете этот параметр как (AuthorizationRights **)authorizedRights, как показано в этом документе, это работает, как описано.Оператор импорта
Objective C
@import SecurityFoundation;Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
obtainWithRights (_: flags:environment:authorizedRights:error:) - obtainWithRights:flags:environment:authorizedRights:error:Авторизовывает и предварительно авторизовывает права получить доступ к привилегированной работе и возвращает предоставленные права.
Объявление
Swift
func obtainWithRights(_rights: UnsafePointer<AuthorizationRights>, flagsflags: AuthorizationFlags, environmentenvironment: UnsafePointer<AuthorizationEnvironment>, authorizedRightsauthorizedRights: UnsafeMutablePointer<UnsafeMutablePointer<AuthorizationRights>>, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)obtainWithRights:(const AuthorizationRights *)rightsflags:(AuthorizationFlags)flagsenvironment:(const AuthorizationEnvironment *)environmentauthorizedRights:(AuthorizationRights **)authorizedRightserror:(NSError **)errorПараметры
rightsУказатель на ряд прав авторизации Вы создаете. Передача
NULLесли приложение не требует никаких прав в это время.flagsНемного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaultsесли никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRightsмаска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRightsиkAuthorizationFlagExtendRightsмаски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowedмаска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorizeиkAuthorizationFlagExtendRightsмаски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRightsмаска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
environmentДанные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment.authorizedRightsУказатель на недавно выделенный
AuthorizationRightsструктура. По возврату эта структура содержит права, предоставленные Концепцией безопасности. Если Вы не запрашиваете эту информацию, передачуNULL. Если Вы указываетеkAuthorizationFlagPreAuthorizeмаска вflagsпараметр, метод возвращает все требуемые права, включая не предоставленных, но флаги прав, которые не могли быть предварительно авторизованы, включаютkAuthorizationFlagCanNotPreAuthorizeбит.Освободите память, связанную с этим набором прав путем вызывания функции Authorization Services
AuthorizationFreeItemSet.errorНа завершении, код результата, возвращенный методом. См. “Коды Результата” в Ссылке Authorization Services C.
Возвращаемое значение
YEStrueесли работа завершается успешно.Обсуждение
Существует три главных причины использовать этот метод. Первая причина состоит в том, чтобы предварительно авторизовать права путем указания
kAuthorizationFlagPreAuthorize,kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации. Когда право имеет нулевой тайм-аут, предварительная авторизация является самой полезной. Например, можно предварительно авторизовать в приложении и если оно успешно выполняется, вызовите инструмент помощника и запросите авторизацию. Если Концепция безопасности не может позже авторизовать указанные права, это устраняет вызов инструмента помощника.Вторая причина использовать этот метод состоит в том, чтобы авторизовать права прежде, чем выполнить привилегированную работу путем указания
kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации.Третья причина использовать этот метод состоит в том, чтобы авторизовать частичные права. Путем указания
kAuthorizationFlagPartialRights,kAuthorizationFlagInteractionAllowed, иkAuthorizationFlagExtendRightsмаски как опции авторизации, Концепция безопасности предоставляет все права, которые она может авторизовать. По возврату авторизованный набор содержит все права.Если Вы не указываете
kAuthorizationFlagPartialRightsмаска и Концепция безопасности отклоняют по крайней мере одно право, тогда возвраты методаNOfalseиerrorвозвраты параметраerrAuthorizationDenied.Если Вы не указываете
kAuthorizationFlagInteractionAllowedмаска и Концепция безопасности требуют взаимодействия с пользователем, тогда возвратов методаNOfalseиerrorвозвраты параметраerrAuthorizationInteractionNotAllowed.Если Вы указываете
kAuthorizationFlagInteractionAllowedмаска и пользователь отменяют процесс аутентификации, тогда возвраты методаNOfalseиerrorвозвраты параметраerrAuthorizationCanceled.Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.5 и позже.
-
permitWithRight:flags: - permitWithRight:flags:(OS X v10.5)Авторизовывает и предварительно авторизовывает одно определенное право.
Оператор осуждения
Использовать
obtainWithRight:flags:вместо этого.Объявление
Objective C
- (OSStatus)permitWithRight:(AuthorizationString)rightNameflags:(AuthorizationFlags)flagsПараметры
rightNameИмя права авторизации.
flagsНемного маски для указания опций авторизации. Посмотрите
permitWithRights:flags:environment:authorizedRightsдля подробных данных о возможных флаговых значениях.Обсуждение
Используйте этот метод, чтобы авторизовать или предварительно авторизовать единственное право.
Оператор импорта
Objective C
@import SecurityFoundation;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.5.
-
Авторизовывает и предварительно авторизовывает одно определенное право.
Объявление
Swift
func obtainWithRight(_rightName: AuthorizationString, flagsflags: AuthorizationFlags, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)obtainWithRight:(AuthorizationString)rightNameflags:(AuthorizationFlags)flagserror:(NSError **)errorПараметры
rightNameИмя права авторизации.
flagsНемного маски для указания опций авторизации. Посмотрите
obtainWithRights:flags:environment:authorizedRights:error:для подробных данных о возможных флаговых значениях.errorНа завершении, код результата, возвращенный методом. См. “Коды Результата” в Ссылке Authorization Services C.
Возвращаемое значение
YEStrueесли работа завершается успешно.Обсуждение
Используйте этот метод, чтобы авторизовать или предварительно авторизовать единственное право.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
-
Предотвращает любые права, полученные этим объектом из того, чтобы быть сохраненным.
Объявление
Swift
func invalidateCredentials()Objective C
- (void)invalidateCredentialsОбсуждение
Этот метод эффективно гарантирует, что не совместно используются полномочия.
Оператор импорта
Objective C
@import SecurityFoundation;Swift
import SecurityFoundationДоступность
Доступный в OS X v10.3 и позже.
