Метод IAzApplication::InitializeClientContextFromStringSid (azroles.h)

Метод InitializeClientContextFromStringSid получает указатель объекта IAzClientContext из указанного идентификатора безопасности (SID) в текстовой форме.

Примечание По возможности вызовите функцию InitializeClientContextFromToken вместо InitializeClientContextFromStringSid. Дополнительные сведения см. в подразделе "Примечания".

 

Синтаксис

HRESULT InitializeClientContextFromStringSid(
  [in]           BSTR             SidString,
  [in]           LONG             lOptions,
  [in, optional] VARIANT          varReserved,
  [out]          IAzClientContext **ppClientContext
);

Параметры

[in] SidString

Строка, содержащая текстовую форму идентификатора безопасности субъекта безопасности. Это должен быть допустимый идентификатор безопасности строки, который может быть преобразован функцией ConvertStringSidToSid .

[in] lOptions

Параметры для создания контекста.

Если указан AZ_CLIENT_CONTEXT_SKIP_GROUP, идентификатор безопасности, указанный в параметре SidString , не обязательно является допустимой учетной записью пользователя. Идентификатор безопасности будет использоваться для создания контекста без проверки. Созданный контекст помечается как созданный из идентификатора безопасности, строка идентификатора безопасности будет сохранена в поле имени клиента, а поле доменного имени будет пустым. Группы маркеров не будут использоваться при создании контекста клиента. Группы запросов LDAP не поддерживаются при указании AZ_CLIENT_CONTEXT_SKIP_GROUP. Так как учетная запись не проверяется в Active Directory, свойства сведений о пользователях контекста клиента, такие как UserSamCompat, будут недопустимыми, и при доступе они будут возвращать ERROR_INVALID_HANDLE. Свойство RoleForAccessCheck и метод AccessCheckобъекта IAzClientContext по-прежнему можно использовать для указания роли для проверки доступа. Метод GetRolesIAzClientContext по-прежнему можно использовать для перечисления ролей, назначенных контексту в рамках определенного область.

Если AZ_CLIENT_CONTEXT_SKIP_GROUP не указан, идентификатор безопасности должен представлять действительную учетную запись пользователя.

[in, optional] varReserved

Зарезервировано для последующего использования. Этот параметр может иметь одно из следующих значений:

  • varReserved.vt == VT_ERROR и varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_NULL
  • varReserved.vt == VT_I4 и varReserved.lVal == 0
  • varReserved.vt == VT_I2 и varReserved.iVal == 0

[out] ppClientContext

Указатель на указатель на возвращенный объект IAzClientContext .

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

Если функция выполнена успешно, функция возвращает S_OK.

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Комментарии

По возможности вызовите функцию InitializeClientContextFromToken вместо InitializeClientContextFromStringSid. Попытка InitializeClientContextFromStringSid получить сведения, доступные в маркере входа, фактически выполнила вход клиента. Фактический маркер входа предоставляет дополнительные сведения, такие как тип входа и свойства входа, а также отражает поведение пакета проверки подлинности, используемого для входа. Контекст клиента, созданный Методом InitializeClientContextFromToken , использует маркер входа, и полученный контекст клиента является более полным и точным, чем контекст клиента, созданный InitializeClientContextFromStringSid.

Важно Приложения не должны предполагать, что вызывающий контекст имеет разрешение на использование этой функции. Функция AuthzInitializeContextFromSid считывает атрибут tokenGroupsGlobalAndUniversal идентификатора безопасности, указанного в вызове, чтобы определить членство текущего пользователя в группах. Если объект пользователя находится в Active Directory, вызывающий контекст должен иметь доступ на чтение к атрибуту tokenGroupsGlobalAndUniversal объекта пользователя. Доступ на чтение к атрибуту tokenGroupsGlobalAndUniversal предоставляется группе доступа, совместимой с Windows 2000 , но новые домены по умолчанию содержат пустую группу доступа, совместимую с Windows 2000 , так как по умолчанию выбран параметр Разрешения, совместимые с Windows 2000 и Windows Server 2003. Поэтому приложения могут не иметь доступа к атрибуту tokenGroupsGlobalAndUniversal; В этом случае функция AuthzInitializeContextFromSid завершается сбоем с ACCESS_DENIED. Приложения, использующие эту функцию, должны правильно обрабатывать эту ошибку и предоставлять вспомогательную документацию. Чтобы упростить предоставление учетным записям разрешения на запрос сведений о группе пользователя, добавьте учетные записи, которым требуется возможность поиска сведений о группе, в группу доступа авторизации Windows.
 
Приложения, вызывающие эту функцию, должны использовать полное доменное имя или имя участника-пользователя (UPN). В противном случае этот метод может завершиться ошибкой в лесах, если используется доменное имя NetBIOS и два домена не имеют прямого отношения доверия.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header azroles.h
Библиотека Azroles.lib
DLL Azroles.dll
Распространяемые компоненты Пакет средств администрирования Windows Server 2003 в Windows XP

См. также раздел

Разрешение анонимного доступа

IAzApplication