Método IAzApplication::InitializeClientContextFromStringSid (azroles.h)

El método InitializeClientContextFromStringSid obtiene un puntero de objeto IAzClientContext del identificador de seguridad (SID) especificado en formato de texto.

Nota Si es posible, llame a la función InitializeClientContextFromToken en lugar de InitializeClientContextFromStringSid. Para obtener más información, vea la sección Comentarios.

 

Sintaxis

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

Parámetros

[in] SidString

Cadena que contiene el formato de texto del SID de la entidad de seguridad. Debe ser un SID de cadena válido que la función ConvertStringSidToSid pueda convertir.

[in] lOptions

Opciones para la creación del contexto.

Si se especifica AZ_CLIENT_CONTEXT_SKIP_GROUP, el SID especificado en el parámetro SidString no es necesariamente una cuenta de usuario válida. El SID se usará para crear el contexto sin validación. El contexto creado se marcará como creado a partir de un SID, la cadena SID se almacenará en el campo nombre de cliente y el campo de nombre de dominio estará vacío. Los grupos de tokens no se usarán en la creación del contexto de cliente. Los grupos de consultas ligeros del Protocolo de acceso a directorios (LDAP) no se admiten cuando se especifica AZ_CLIENT_CONTEXT_SKIP_GROUP. Dado que la cuenta no se valida en Active Directory, las propiedades de información de usuario del contexto de cliente, como UserSamCompat, no serán válidas y, cuando se tenga acceso, devolverán ERROR_INVALID_HANDLE. La propiedad RoleForAccessCheck y el método AccessCheck de IAzClientContext todavía se pueden usar para especificar un rol para la comprobación de acceso. El método GetRoles de IAzClientContext todavía se puede usar para enumerar los roles asignados al contexto dentro de un ámbito específico.

Si no se especifica AZ_CLIENT_CONTEXT_SKIP_GROUP, el SID debe representar una cuenta de usuario válida.

[in, optional] varReserved

Reservado para uso futuro. Este parámetro puede establecerse con uno de los siguientes valores:

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

[out] ppClientContext

Puntero a un puntero al objeto IAzClientContext devuelto.

Valor devuelto

Si la función se realiza correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Comentarios

Si es posible, llame a la función InitializeClientContextFromToken en lugar de InitializeClientContextFromStringSid. InitializeClientContextFromStringSid intenta recuperar la información disponible en un token de inicio de sesión con el cliente que realmente ha iniciado sesión. Un token de inicio de sesión real proporciona más información, como el tipo de inicio de sesión y las propiedades de inicio de sesión, y refleja el comportamiento del paquete de autenticación usado para el inicio de sesión. El contexto de cliente creado por InitializeClientContextFromToken usa un token de inicio de sesión y el contexto de cliente resultante es más completo y preciso que un contexto de cliente creado por InitializeClientContextFromStringSid.

Importante Las aplicaciones no deben suponer que el contexto de llamada tiene permiso para usar esta función. La función AuthzInitializeContextFromSid lee el atributo tokenGroupsGlobalAndUniversal del SID especificado en la llamada para determinar las pertenencias a grupos del usuario actual. Si el objeto del usuario está en Active Directory, el contexto de llamada debe tener acceso de lectura al atributo tokenGroupsGlobalAndUniversal en el objeto de usuario. El acceso de lectura al atributo tokenGroupsGlobalAndUniversal se concede al grupo Acceso compatible con Pre-Windows 2000 , pero los nuevos dominios contienen un grupo vacío de acceso compatible con Windows 2000 de forma predeterminada porque la selección de configuración predeterminada es Permisos compatibles con Windows 2000 y Windows Server 2003. Por lo tanto, es posible que las aplicaciones no tengan acceso al atributo tokenGroupsGlobalAndUniversal; en este caso, se produce un error en la función AuthzInitializeContextFromSid con ACCESS_DENIED. Las aplicaciones que usan esta función deben controlar correctamente este error y proporcionar documentación complementaria. Para simplificar la concesión de permisos a las cuentas para consultar la información de grupo de un usuario, agregue cuentas que necesiten la capacidad de buscar información de grupo en el grupo de acceso de autorización de Windows.
 
Las aplicaciones que llaman a esta función deben usar el nombre de dominio completo o el nombre principal de usuario (UPN). De lo contrario, este método podría producir un error en los bosques si se usa el nombre de dominio NetBIOS y los dos dominios no tienen una relación de confianza directa.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado azroles.h
Library Azroles.lib
Archivo DLL Azroles.dll
Redistribuible Paquete de herramientas de administración de Windows Server 2003 en Windows XP

Consulte también

Permitir el acceso anónimo

IAzApplication