Поделиться через


Класс CSid

Этот класс представляет собой оболочку для SID структуры (идентификатора безопасности).

Внимание

Этот класс и его члены нельзя использовать в приложениях, которые выполняются в среда выполнения Windows.

Синтаксис

class CSid;

Участники

Общедоступные типдефы

Имя Описание
CSid::CSidArray Массив объектов CSid.

Открытые конструкторы

Имя Описание
CSid::CSid Конструктор.
CSid::~CSid Деструктор

Открытые методы

Имя Описание
CSid::AccountName Возвращает имя учетной записи, связанной CSid с объектом.
CSid::Domain Возвращает имя домена, связанного с CSid объектом.
CSid::EqualPrefix Тесты SID (идентификатор безопасности) для равенства.
CSid::GetLength Возвращает длину CSid объекта.
CSid::GetPSID Возвращает указатель на структуру SID .
CSid::GetPSID_IDENTIFIER_AUTHORITY Возвращает указатель на структуру SID_IDENTIFIER_AUTHORITY .
CSid::GetSubAuthority Возвращает указанную подзаготовку в SID структуре.
CSid::GetSubAuthorityCount Возвращает число подзаготовлений.
CSid::IsValid CSid Проверяет объект для допустимости.
CSid::LoadAccount Обновляет объект с CSid именем учетной записи и доменом или существующей SID структурой.
CSid::Sid Возвращает строку идентификатора.
CSid::SidNameUse Возвращает описание состояния CSid объекта.

Операторы

Имя Описание
CSid::operator = Оператор присвоения.
CSid::operator const SID * Приведение CSid объекта к указателю на структуру SID .

Глобальные операторы

Имя Описание
operator == Проверяет два объекта дескриптора безопасности для равенства
operator != Проверяет два объекта дескриптора безопасности для неравенства
operator < Сравнивает относительное значение двух объектов дескриптора безопасности.
operator > Сравнивает относительное значение двух объектов дескриптора безопасности.
operator <= Сравнивает относительное значение двух объектов дескриптора безопасности.
operator >= Сравнивает относительное значение двух объектов дескриптора безопасности.

Замечания

Структура SID — это структура переменной длины, используемая для уникальной идентификации пользователей или групп.

Приложения не должны изменять структуру SID напрямую, а использовать методы, предоставляемые в этом классе-оболочке. См. также AtlGetOwnerSid, , AtlSetGroupSidAtlGetGroupSidи AtlSetOwnerSid.

Общие сведения о модели управления доступом в Windows см. в контроль доступа в пакете SDK для Windows.

Требования

Заголовок: atlsecurity.h

CSid::AccountName

Возвращает имя учетной записи, связанной CSid с объектом.

LPCTSTR AccountName() const throw(...);

Возвращаемое значение

LPCTSTR Возвращает указатель на имя учетной записи.

Замечания

Этот метод пытается найти имя указанного SID (идентификатора безопасности). Полные сведения см. в статье LookupAccountSid.

Если имя учетной SID записи не найдено, AccountName возвращает пустую строку. Этот результат может произойти, если время ожидания сети предотвращает поиск имени этого метода. Он также возникает для идентификаторов безопасности без соответствующего имени учетной записи, например SID для идентификации сеанса входа.

CSid::CSid

Конструктор.

CSid() throw();
CSid(const SID& rhs) throw(...);
CSid(const CSid& rhs) throw(...);

CSid(
    const SID_IDENTIFIER_AUTHORITY& IdentifierAuthority,
    BYTE nSubAuthorityCount,
    ...) throw(...);

explicit CSid(
    LPCTSTR pszAccountName,
    LPCTSTR pszSystem = NULL) throw(...);

explicit CSid(
    const SID* pSid,
    LPCTSTR pszSystem = NULL) throw(...);

Параметры

rhs
Существующая CSid структура объекта или SID (идентификатора безопасности).

IdentifierAuthority
Авторитет.

nSubAuthorityCount
Число подзаготовок.

pszAccountName
Имя учетной записи.

pszSystem
Имя системы. Эта строка может быть именем удаленного компьютера. Если эта строка имеет значение NULL, вместо этого используется локальная система.

pSid
Указатель на структуру SID .

Замечания

Конструктор инициализирует CSid объект, устанавливая для элемента внутренних данных SidTypeInvalidзначение или копируя параметры из существующей CSidSIDучетной записи или существующей учетной записи.

Если инициализация завершается ошибкой CAtlException , конструктор вызовет класс.

CSid::~CSid

Деструктор

virtual ~CSid() throw();

Замечания

Деструктор освобождает все ресурсы, приобретенные объектом.

CSid::CSidArray

Массив объектов CSid.

typedef CAtlArray<CSid> CSidArray;

Замечания

Этот типdef указывает тип массива, который можно использовать для получения идентификаторов безопасности из ACL (списка управления доступом). См. раздел CAcl::GetAclEntries.

CSid::Domain

Возвращает имя домена, связанного с CSid объектом.

LPCTSTR Domain() const throw(...);

Возвращаемое значение

LPCTSTR Возвращает указатель на домен.

Замечания

Этот метод пытается найти имя указанного SID (идентификатора безопасности). Полные сведения см. в статье LookupAccountSid.

Если имя учетной записи не SID найдено, Domain возвращает домен в виде пустой строки. Этот результат может произойти, если время ожидания сети предотвращает поиск имени этого метода. Он также возникает для идентификаторов безопасности без соответствующего имени учетной записи, например SID для идентификации сеанса входа.

CSid::EqualPrefix

Тесты SID (идентификатор безопасности) для равенства.

bool EqualPrefix(const SID& rhs) const throw();
bool EqualPrefix(const CSid& rhs) const throw();

Параметры

rhs
Структура SID или CSid объект для сравнения (идентификатор безопасности).

Возвращаемое значение

Возвращает успешность TRUE при FALSE сбое.

Замечания

Дополнительные сведения см. в разделе EqualPrefixSid.

CSid::GetLength

Возвращает длину CSid объекта.

UINT GetLength() const throw();

Возвращаемое значение

Возвращает длину объекта в байтах CSid .

Замечания

CSid Если структура недопустима, возвращаемое значение не определено. Перед вызовом GetLengthиспользуйте функцию-член CSid::IsValid , чтобы убедиться, что CSid это допустимо.

Примечание.

При отладке сборки функция приведет к возникновению ошибки ASSERT, если CSid объект недействителен.

CSid::GetPSID

Возвращает указатель на структуру SID (идентификатор безопасности).

const SID* GetPSID() const throw(...);

Возвращаемое значение

Возвращает адрес базовой CSid SID структуры объекта.

CSid::GetPSID_IDENTIFIER_AUTHORITY

Возвращает указатель на структуру SID_IDENTIFIER_AUTHORITY .

const SID_IDENTIFIER_AUTHORITY* GetPSID_IDENTIFIER_AUTHORITY() const throw();

Возвращаемое значение

Если метод выполнен успешно, он возвращает адрес SID_IDENTIFIER_AUTHORITY структуры. Если он завершается ошибкой, возвращаемое значение не определено. Сбой может произойти, если CSid объект недействителен, в этом случае CSid::IsValid метод возвращается FALSE. Функция GetLastError может вызываться для расширенных сведений об ошибке.

Примечание.

При отладке сборки функция приведет к возникновению ошибки ASSERT, если CSid объект недействителен.

CSid::GetSubAuthority

Возвращает указанную подзаготовку в SID структуре (идентификатора безопасности).

DWORD GetSubAuthority(DWORD nSubAuthority) const throw();

Параметры

nSubAuthority
Подзаготовка.

Возвращаемое значение

Возвращает подосторию, на которую ссылается nSubAuthorityссылка. Значение подчиненной проверки подлинности — это относительный идентификатор (RID).

Замечания

Параметр nSubAuthority задает значение индекса, определяющее элемент массива подзаборности, который будет возвращен методом. Этот метод не выполняет тесты проверки для этого значения. Приложение может вызвать CSid::GetSubAuthorityCount диапазон допустимых значений.

Примечание.

При отладке сборки функция приведет к возникновению ошибки ASSERT, если CSid объект недействителен.

CSid::GetSubAuthorityCount

Возвращает число подзаготовлений.

UCHAR GetSubAuthorityCount() const throw();

Возвращаемое значение

Если метод выполнен успешно, возвращаемое значение является числом подзаготовок.

Если метод завершается ошибкой, возвращаемое значение не определено. Метод завершается ошибкой, если CSid объект недопустим. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError.

Примечание.

При отладке сборки функция приведет к возникновению ошибки ASSERT, если CSid объект недействителен.

CSid::IsValid

CSid Проверяет объект для допустимости.

bool IsValid() const throw();

Возвращаемое значение

Возвращает TRUE значение, если CSid объект является допустимым, FALSE если нет. Для этого метода нет расширенных сведений об ошибке; не вызывайте GetLastError.

Замечания

Метод IsValid проверяет CSid объект, убедившись, что номер редакции находится в известном диапазоне, а количество подзаверений меньше максимального.

CSid::LoadAccount

Обновляет объект, CSid заданный именем учетной записи и доменом, или существующей SID (идентификатором безопасности).

bool LoadAccount(
    LPCTSTR pszAccountName,
    LPCTSTR pszSystem = NULL) throw(...);

bool LoadAccount(
    const SID* pSid,
    LPCTSTR pszSystem = NULL) throw(...);

Параметры

pszAccountName
Имя учетной записи.

pszSystem
Имя системы. Эта строка может быть именем удаленного компьютера. Если эта строка имеет значение NULL, вместо этого используется локальная система.

pSid
Указатель на структуру SID .

Возвращаемое значение

Возвращает успешность TRUE при FALSE сбое. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError.

Замечания

LoadAccount пытается найти идентификатор безопасности для указанного имени. Дополнительные сведения см. в разделе LookupAccountSid.

CSid::operator =

Оператор присвоения.

CSid& operator= (const CSid& rhs) throw(...);
CSid& operator= (const SID& rhs) throw(...);

Параметры

rhs
( SID идентификатор безопасности) или CSid назначение объекту CSid .

Возвращаемое значение

Возвращает ссылку на обновленный CSid объект.

operator ==

Проверяет два объекта дескриптора безопасности для равенства.

bool operator==(
    const CSid& lhs,
    const CSid& rhs) throw();

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева == от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа == от оператора.

Возвращаемое значение

TRUE Значение , если дескрипторы безопасности равны, в противном случае FALSE.

operator !=

Проверяет два объекта дескриптора безопасности для неравенства.

bool operator!=(
    const CSid& lhs,
    const CSid& rhs) throw();

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева != от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа != от оператора.

Возвращаемое значение

TRUE Значение , если дескрипторы безопасности не равны, в противном случае FALSE.

operator <

Сравнивает относительное значение двух объектов дескриптора безопасности.

bool operator<(
    const CSid& lhs,
    const CSid& rhs) throw();

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева < от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа < от оператора.

Возвращаемое значение

TRUE Значение ,если lhs меньше rhs, в противном случае FALSE.

operator <=

Сравнивает относительное значение двух объектов дескриптора безопасности.

bool operator<=(
    const CSid& lhs,
    const CSid& rhs) throw();

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева <= от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа <= от оператора.

Возвращаемое значение

TRUE Значение ,если lhs меньше или равно rhs, в противном случае FALSE.

operator >

Сравнивает относительное значение двух объектов дескриптора безопасности.

bool operator>(
    const CSid& lhs,
    const CSid& rhs) throw();

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева > от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа > от оператора.

Возвращаемое значение

TRUEЗначение ,rhsесли lhs больше , в противном случае FALSE.

operator >=

Сравнивает относительное значение двух объектов дескриптора безопасности.

bool operator>=(
    const CSid& lhs,
    const CSid& rhs) throw());

Параметры

lhs
( SID идентификатор безопасности) или CSid отображается слева >= от оператора.

rhs
( SID идентификатор безопасности) или CSid отображается справа >= от оператора.

Возвращаемое значение

TRUE Значение ,если lhs больше или равно rhs, в противном случае FALSE.

CSid::operator const SID *

Приведение CSid объекта к указателю на SID структуру (идентификатор безопасности).

operator const SID *() const;

Замечания

Возвращает адрес SID структуры.

CSid::Sid

Возвращает структуру SID (идентификатор безопасности) в виде строки.

LPCTSTR Sid() const throw(...);

Возвращаемое значение

SID Возвращает структуру в виде строки в формате, подходящем для отображения, хранения или передачи. Эквивалент ConvertSidToStringSid.

CSid::SidNameUse

Возвращает описание состояния CSid объекта.

SID_NAME_USE SidNameUse() const throw();

Возвращаемое значение

Возвращает значение элемента данных, в котором хранится значение, описывающее состояние CSid объекта.

значение Описание
SidTypeUser Указывает пользователя SID (идентификатор безопасности).
SidTypeGroup Указывает группу SID.
SidTypeDomain Указывает домен SID.
SidTypeAlias Указывает псевдоним SID.
SidTypeWellKnownGroup Указывает на SID общеизвестную группу.
SidTypeDeletedAccount Указывает для SID удаленной учетной записи.
SidTypeInvalid Указывает недопустимое SIDзначение.
SidTypeUnknown Указывает неизвестный SID тип.
SidTypeComputer Указывает SID для компьютера.

Замечания

Вызов CSid::LoadAccount обновления CSid объекта перед вызовом SidNameUse для возврата состояния. SidNameUse не изменяет состояние объекта (вызывая LookupAccountName или LookupAccountSid), но возвращает только текущее состояние.

См. также

Пример безопасности
Общие сведения о классе
Глобальные функции безопасности
Операторы