Fonction SaslInitializeSecurityContextA (sspi.h)
La fonction SaslInitializeSecurityContext encapsule un appel standard à la fonction InitializeSecurityContext (General)de l’interface du fournisseur de support de sécurité et traite les cookies du serveur SASL à partir du serveur.
Syntaxe
SECURITY_STATUS SEC_ENTRY SaslInitializeSecurityContextA(
[in] PCredHandle phCredential,
[in] PCtxtHandle phContext,
[in] LPSTR pszTargetName,
[in] unsigned long fContextReq,
[in] unsigned long Reserved1,
[in] unsigned long TargetDataRep,
[in] PSecBufferDesc pInput,
[in] unsigned long Reserved2,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Paramètres
[in] phCredential
Handle pour les informations d’identification retournées par le
Fonction AcquireCredentialsHandle utilisée pour générer le contexte de sécurité. L’utilisation de la fonction SaslInitializeSecurityContext nécessite au moins des informations d’identification sortantes.
[in] phContext
Pointeur vers une structure CtxtHandle . Lors du premier appel à la fonction SaslInitializeSecurityContext , ce pointeur a la valeur NULL. Lors du deuxième appel, ce paramètre est un pointeur vers le handle vers le contexte partiellement formé retourné dans le paramètre phNewContext par le premier appel.
[in] pszTargetName
Pointeur vers une chaîne Unicode ou ANSI qui indique la cible du contexte.
[in] fContextReq
Indicateurs de bits qui indiquent les exigences du contexte. Les indicateurs utilisés pour ce paramètre sont précédés de ISC_REQ_ ; par exemple : ISC_REQ_DELEGATE. Spécifiez les combinaisons des indicateurs d’attributs suivants.
Pour obtenir d’autres descriptions des différents attributs, consultez Configuration requise du contexte.
[in] Reserved1
Valeur réservée ; doit être égal à zéro.
[in] TargetDataRep
Indique la représentation des données, telle que l’ordre des octets, sur la cible. Peut être SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.
[in] pInput
Pointeur vers une structure SecBufferDesc qui contient des pointeurs vers les mémoires tampons fournies en entrée dans le package. Le pointeur doit avoir la valeur NULL lors du premier appel à la fonction. Lors des appels ultérieurs à la fonction, il s’agit d’un pointeur vers une mémoire tampon allouée avec suffisamment de mémoire pour contenir le jeton retourné par l’homologue distant.
SASL nécessite une mémoire tampon unique de type SECBUFFER_TOKEN qui contient le défi reçu du serveur.
[in] Reserved2
Valeur réservée ; doit être égal à zéro.
[out] phNewContext
Pointeur vers une structure CtxtHandle . Lors du premier appel à la fonction SaslInitializeSecurityContext , ce pointeur reçoit le nouveau handle de contexte. Lors du deuxième appel, phNewContext peut être identique au handle spécifié dans le paramètre phContext .
[in, out] pOutput
Pointeur vers une structure SecBufferDesc qui contient des pointeurs vers la structure SecBuffer qui reçoit les données de sortie. Si une mémoire tampon a été tapée comme SEC_READWRITE dans l’entrée, elle sera là sur la sortie. Le système alloue une mémoire tampon pour le jeton de sécurité si nécessaire (via ISC_REQ_ALLOCATE_MEMORY) et renseigne l’adresse dans le descripteur de mémoire tampon pour le jeton de sécurité.
[out] pfContextAttr
Pointeur vers une variable pour recevoir un ensemble d’indicateurs de bits qui indiquent les attributs du contexte établi. Pour obtenir une description des différents attributs, consultez Configuration requise du contexte.
Les indicateurs utilisés pour ce paramètre sont précédés de ISC_RET_, comme ISC_RET_DELEGATE.
Pour obtenir la liste des valeurs valides, consultez le paramètre fContextReq .
Ne case activée pas pour les attributs liés à la sécurité tant que l’appel de fonction final n’est pas retourné. Les indicateurs d’attribut non liés à la sécurité, tels que l’indicateur ASC_RET_ALLOCATED_MEMORY, peuvent être vérifiés avant le retour final.
[out, optional] ptsExpiry
Pointeur vers une structure TimeStamp qui reçoit l’heure d’expiration du contexte. Il est recommandé que le package de sécurité retourne toujours cette valeur en heure locale. Ce paramètre est facultatif et NULL doit être transmis pour les clients à courte durée de vie.
Valeur retournée
Si l’appel est terminé avec succès, cette fonction retourne SEC_E_OK. Le tableau suivant montre certaines valeurs de retour d’échec possibles.
Code de retour | Description |
---|---|
|
Le traitement authz n’est pas autorisé. |
|
La mémoire disponible est insuffisante pour effectuer la demande. |
|
Aucune mémoire tampon de jeton ne se trouve dans le paramètre pOutput ou le message n’a pas pu être déchiffré. |
Remarques
Notes
L’en-tête sspi.h définit SaslInitializeSecurityContext comme un 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | sspi.h (include Security.h) |
Bibliothèque | Secur32.lib |
DLL | Secur32.dll |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour