Partager via


RpcBindingSetAuthInfoExA, fonction (rpcdce.h)

La fonction RpcBindingSetAuthInfoEx définit les informations d’authentification, d’autorisation et de qualité de service d’un handle de liaison.

Syntaxe

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

Paramètres

Binding

Handle de liaison de serveur dans lequel les informations d’authentification et d’autorisation sont définies.

ServerPrincName

Pointeur vers le nom principal attendu du serveur référencé par liaison. Le contenu du nom et de sa syntaxe sont définis par le service d’authentification en cours d’utilisation.

Remarque Pour l’ensemble de noms cibles autorisés pour les fournisseurs de services de sécurité cloud, reportez-vous aux commentaires de la documentation InitializeSecurityContext.
 

AuthnLevel

Niveau d’authentification à effectuer sur les appels de procédure distante effectués à l’aide de liaison. Pour obtenir la liste des niveaux d’authentification pris en charge par RPC, consultez Authentication-Level Constantes.

AuthnSvc

Service d’authentification à utiliser.

Spécifiez RPC_C_AUTHN_NONE pour désactiver l’authentification pour les appels de procédure distante effectués à l’aide de de liaison .

Si RPC_C_AUTHN_DEFAULT est spécifié, la bibliothèque d’exécution RPC utilise le service d’authentification RPC_C_AUTHN_WINNT pour les appels de procédure distante effectués à l’aide de liaison.

AuthIdentity

Gérez la structure qui contient les informations d’identification d’authentification et d’autorisation du client appropriées pour le service d’authentification et d’autorisation sélectionné.

Lorsque vous utilisez le service d’authentification RPC_C_AUTHN_WINNTAuthIdentity doit être un pointeur vers une structure SEC_WINNT_AUTH_IDENTITY (définie dans Rpcdce.h). Les services d’authentification Kerberos et Negotiate utilisent également la structure SEC_WINNT_AUTH_IDENTITY.

Spécifiez une valeur Null pour utiliser le contexte de connexion de sécurité pour l’espace d’adressage actuel. Transmettez la valeur RPC_C_NO_CREDENTIALS pour utiliser un contexte de connexion anonyme. Notez que RPC_C_NO_CREDENTIALS est valide uniquement si RPC_C_AUTHN_GSS_SCHANNEL est sélectionné comme service d’authentification.

AuthzSvc

Service d’autorisation implémenté par le serveur pour l’interface d’intérêt. La validité et la fiabilité des données d’autorisation, comme toutes les données d’application, dépendent du service d’authentification et du niveau d’authentification sélectionné. Ce paramètre est ignoré lors de l’utilisation du service d’authentification RPC_C_AUTHN_WINNT. Voir remarque.

SecurityQos

Pointeur vers la structure RPC_SECURITY_QOS, qui définit la qualité de service de sécurité.

Remarque Pour obtenir la liste des services d’authentification pris en charge par RPC, consultez Authentication-Service Constantes.
 

Valeur de retour

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_INVALID_BINDING
Le handle de liaison n’était pas valide.
RPC_S_WRONG_KIND_OF_BINDING
Il s’agissait du mauvais type de liaison pour l’opération.
RPC_S_UNKNOWN_AUTHN_SERVICE
Service d’authentification inconnu.
 
Remarque Pour obtenir la liste des codes d’erreur valides, consultez valeurs de retour RPC.
 

Remarques

Une application cliente appelle la fonction RpcBindingSetAuthInfoEx pour configurer un handle de liaison de serveur pour effectuer des appels de procédure distante authentifiés. Cette fonction permet de définir des informations de qualité de service de sécurité sur le handle de liaison. Sinon, il est identique à RpcBindingSetAuthInfo.

À moins qu’un client n’appelle RpcBindingSetAuthInfoEx, tous les appels de procédure distante sur liaison ne sont pas authentifiés. Un client n’est pas requis pour appeler cette fonction.

La fonction RpcBindingSetAuthInfoEx prend un instantané des informations d’identification. Par conséquent, la mémoire dédiée au paramètre AuthIdentity peut être libérée avant le handle de liaison. L’exception à ceci est lorsque votre application utilise RpcBindingSetAuthInfoEx avec RPC_C_QOS_IDENTITY_DYNAMIC et spécifie également une valeur NULL nonpour AuthIdentity.

Remarque La fonction RpcBindingSetAuthInfo ne doit pas être appelée sur un handle de liaison pendant qu’un appel RPC sur le même handle est en cours. Cela produit des résultats non définis.
 
En raison des exigences variables de différentes versions de Microsoft RPC, Microsoft recommande qu’une application conserve un pointeur vers le paramètre AuthIdentity tant que le handle de liaison existe. Cela augmente la portabilité des applications.

Windows Server 2003 avec SP1 et Windows XP avec SP2 : pour Windows XP SP2 et Windows Server 2003 SP1, le pointeur vers le paramètre AuthIdentity n’a pas besoin d’être conservé pour la durée de vie du handle de liaison. Ce pointeur ne doit être conservé que si des appels ultérieurs à RpcBindingInqAuthInfo ou RpcBindingInqAuthInfoEx sont effectués.

Remarque La séquence de protocole ncalrpc ne prend en charge que les RPC_C_AUTHN_WINNT, mais prend en charge l’authentification mutuelle ; fournissez un SPN et demandez une authentification mutuelle via le paramètre SecurityQOS pour y parvenir.
 

Note

L’en-tête rpcdce.h définit RpcBindingSetAuthInfoEx comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête rpcdce.h (inclure Rpc.h)
bibliothèque Rpcrt4.lib
DLL Rpcrt4.dll

Voir aussi

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo