Составители:
Рубрика:
последующем чтении его с диска все указатели потеряют смысл), а относи-
тельный дескриптор – можно.
Windows позволяет преобразовывать абсолютный дескриптор в относи-
тельную форму и обратно. Обычно это требуется лишь в том случае, если вы
записываете дескриптор на диск и считываете дескриптор с диска. Системные
вызовы, требующие передачи указателя на дескриптор безопасности, работают
только с дескрипторами в абсолютном формате.
Преобразование осуществляется при помощи функций MakeSelfRelati-
veSD() и MakeAbsoluteSD(). Преобразовать абсолютную форму в относитель-
ную несложно. Однако обратное преобразование (из относительной
в абсолютную) обычно выполняется в несколько этапов. Дело в том, что при
этом необходимо подготовить несколько буферов в памяти и передать указа-
тели на них в функцию MakeAbsoluteSD().
Для работы с идентификаторами SID используются две основные функ-
ции: LookupAccountName() и LookupAccountSid(). Эти функции позволяют
преобразовать идентификатор SID в имя учетной записи и наоборот: имя учет-
ной записи – в идентификатор SID.
Если программа работает в сетевой среде, она может обратиться к этим
функциям с удаленного компьютера. Эта возможность может пригодиться, на-
пример, при разработке сервера, который обслуживает удаленных клиентов.
При обращении к любой из этих функций в качестве имени компьютера можно
указать NULL, и тогда вы сможете получить интересующие вас сведения отно-
сительно локальных пользователей.
Помимо имени или идентификатора SID каждая из этих функций также
сообщает значение перечисляемого типа, указывающее, какому классу объек-
тов соответствует этот SID (табл. 7.2). Переменная типа SID_NAME_USE со-
держит класс идентификатора SID, с которым вы имеете дело.
Чтобы получить имя текущего пользователя, следует использовать функ-
цию GetUserName(). Получив имя, вы можете определить соответствующий
SID при помощи функции LookupAccountSid().
Таблица 7.2
Имя Описание
SidTypeUser Обычный пользователь
SidTypeGroup Обычная группа
SidTypeDomain Доменное имя
SidTypeAlias Псевдоним
Окончание таблицы 7.2
SidTypeWellKnownGroup Хорошо известная группа
SidTypeDeletedAccount Старая учетная запись
SidTypeUnknown Неизвестный объект
95
последующем чтении его с диска все указатели потеряют смысл), а относи-
тельный дескриптор – можно.
Windows позволяет преобразовывать абсолютный дескриптор в относи-
тельную форму и обратно. Обычно это требуется лишь в том случае, если вы
записываете дескриптор на диск и считываете дескриптор с диска. Системные
вызовы, требующие передачи указателя на дескриптор безопасности, работают
только с дескрипторами в абсолютном формате.
Преобразование осуществляется при помощи функций MakeSelfRelati-
veSD() и MakeAbsoluteSD(). Преобразовать абсолютную форму в относитель-
ную несложно. Однако обратное преобразование (из относительной
в абсолютную) обычно выполняется в несколько этапов. Дело в том, что при
этом необходимо подготовить несколько буферов в памяти и передать указа-
тели на них в функцию MakeAbsoluteSD().
Для работы с идентификаторами SID используются две основные функ-
ции: LookupAccountName() и LookupAccountSid(). Эти функции позволяют
преобразовать идентификатор SID в имя учетной записи и наоборот: имя учет-
ной записи – в идентификатор SID.
Если программа работает в сетевой среде, она может обратиться к этим
функциям с удаленного компьютера. Эта возможность может пригодиться, на-
пример, при разработке сервера, который обслуживает удаленных клиентов.
При обращении к любой из этих функций в качестве имени компьютера можно
указать NULL, и тогда вы сможете получить интересующие вас сведения отно-
сительно локальных пользователей.
Помимо имени или идентификатора SID каждая из этих функций также
сообщает значение перечисляемого типа, указывающее, какому классу объек-
тов соответствует этот SID (табл. 7.2). Переменная типа SID_NAME_USE со-
держит класс идентификатора SID, с которым вы имеете дело.
Чтобы получить имя текущего пользователя, следует использовать функ-
цию GetUserName(). Получив имя, вы можете определить соответствующий
SID при помощи функции LookupAccountSid().
Таблица 7.2
Имя Описание
SidTypeUser Обычный пользователь
SidTypeGroup Обычная группа
SidTypeDomain Доменное имя
SidTypeAlias Псевдоним
Окончание таблицы 7.2
SidTypeWellKnownGroup Хорошо известная группа
SidTypeDeletedAccount Старая учетная запись
SidTypeUnknown Неизвестный объект
95
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »
