Partager via


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

La méthode InitializeClientContextFromStringSid obtient un pointeur d’objet IAzClientContext à partir de l’identificateur de sécurité (SID) spécifié sous forme de texte.

Note Si possible, appelez la fonction InitializeClientContextFromToken au lieu de InitializeClientContextFromStringSid. Pour plus d'informations, consultez la section Notes.

 

Syntaxe

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

Paramètres

[in] SidString

Chaîne qui contient la forme texte du SID du principal de sécurité. Il doit s’agir d’un SID de chaîne valide qui peut être converti par la fonction ConvertStringSidToSid .

[in] lOptions

Options pour la création du contexte.

Si AZ_CLIENT_CONTEXT_SKIP_GROUP est spécifié, le SID spécifié dans le paramètre SidString n’est pas nécessairement un compte d’utilisateur valide. Le SID sera utilisé pour créer le contexte sans validation. Le contexte créé est marqué comme ayant été créé à partir d’un SID, la chaîne SID est stockée dans le champ nom du client et le champ nom de domaine est vide. Les groupes de jetons ne seront pas utilisés dans la création du contexte client. Les groupes de requêtes LDAP (Lightweight Directory Access Protocol) ne sont pas pris en charge lorsque AZ_CLIENT_CONTEXT_SKIP_GROUP est spécifié. Étant donné que le compte n’est pas validé dans Active Directory, les propriétés d’informations utilisateur du contexte client, telles que UserSamCompat, ne sont pas valides et, lorsqu’elles sont consultées, elles retournent ERROR_INVALID_HANDLE. La propriété RoleForAccessCheck et la méthode AccessCheck de IAzClientContext peuvent toujours être utilisées pour spécifier un rôle pour la vérification d’accès. La méthode GetRoles de IAzClientContext peut toujours être utilisée pour énumérer les rôles attribués au contexte dans une étendue spécifique.

Si AZ_CLIENT_CONTEXT_SKIP_GROUP n’est pas spécifié, le SID doit représenter un compte d’utilisateur valide.

[in, optional] varReserved

Réservé pour un usage futur. Ce paramètre peut être l’une des valeurs suivantes :

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

[out] ppClientContext

Pointeur vers un pointeur vers l’objet IAzClientContext retourné.

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Remarques

Si possible, appelez la fonction InitializeClientContextFromToken au lieu de InitializeClientContextFromStringSid. InitializeClientContextFromStringSid tente de récupérer les informations disponibles dans un jeton d’ouverture de session si le client s’est connecté. Un jeton d’ouverture de session réel fournit des informations supplémentaires, telles que le type d’ouverture de session et les propriétés d’ouverture de session, et reflète le comportement du package d’authentification utilisé pour l’ouverture de session. Le contexte client créé par InitializeClientContextFromToken utilise un jeton d’ouverture de session, et le contexte client résultant est plus complet et plus précis qu’un contexte client créé par InitializeClientContextFromStringSid.

Important Les applications ne doivent pas supposer que le contexte appelant a l’autorisation d’utiliser cette fonction. La fonction AuthzInitializeContextFromSid lit l’attribut tokenGroupsGlobalAndUniversal du SID spécifié dans l’appel pour déterminer les appartenances au groupe de l’utilisateur actuel. Si l’objet de l’utilisateur se trouve dans Active Directory, le contexte appelant doit disposer d’un accès en lecture à l’attribut tokenGroupsGlobalAndUniversal sur l’objet utilisateur. L’accès en lecture à l’attribut tokenGroupsGlobalAndUniversal est accordé au groupe d’accès compatible pré-Windows 2000 , mais les nouveaux domaines contiennent un groupe d’accès compatible pré-Windows 2000 vide par défaut, car la sélection d’installation par défaut est Autorisations compatibles avec Windows 2000 et Windows Server 2003. Par conséquent, les applications peuvent ne pas avoir accès à l’attribut tokenGroupsGlobalAndUniversal ; dans ce cas, la fonction AuthzInitializeContextFromSid échoue avec ACCESS_DENIED. Les applications qui utilisent cette fonction doivent gérer correctement cette erreur et fournir une documentation de prise en charge. Pour simplifier l’octroi de l’autorisation aux comptes d’interroger les informations de groupe d’un utilisateur, ajoutez des comptes qui ont besoin de la possibilité de rechercher des informations de groupe dans le groupe d’accès d’autorisation Windows.
 
Les applications appelant cette fonction doivent utiliser le nom de domaine complet ou le nom d’utilisateur principal (UPN). Sinon, cette méthode peut échouer entre les forêts si le nom de domaine NetBIOS est utilisé et que les deux domaines n’ont pas de relation d’approbation directe.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête azroles.h
Bibliothèque Azroles.lib
DLL Azroles.dll
Composant redistribuable Pack outils d’administration Windows Server 2003 sur Windows XP

Voir aussi

Autorisation de l’accès anonyme

IAzApplication