Partager via


Exemple de code SecBuffer et SecBufferDesc

Cet exemple montre comment initialiser un tableau de mémoires tampons de sécurité. Il montre les mémoires tampons de sécurité d’entrée initialisées par le côté serveur d’une connexion pour préparer un appel à AcceptSecurityContext (Général). Notez que la dernière mémoire tampon contient le jeton de sécurité opaque reçu par le client et que l’indicateur SECBUFFER_READONLY est défini sur SecBuffer.

SecBuffer  Buffers[3];
SecBufferDesc BufferDesc;
BYTE *pHeader;
BYTE *pMessage;
BYTE *pTrailer;

//--------------------------------------------------------------------
// pHeader, pMessage, and pTrailer are BYTE strings.
// In a working program, they would be assigned string values.

BufferDesc.ulVersion = SECBUFFER_VERSION;
BufferDesc.cBuffers = 3;
BufferDesc.pBuffers = Buffers;

Buffers[0].cbBuffer = sizeof(pHeader);
Buffers[0].BufferType = SECBUFFER_READONLY | SECBUFFER_DATA;
Buffers[0].pvBuffer = pHeader;

Buffers[1].cbBuffer = sizeof(pMessage);
Buffers[1].BufferType = SECBUFFER_DATA;
Buffers[1].pvBuffer = pMessage;

Buffers[2].cbBuffer = sizeof(pTrailer);
Buffers[2].BufferType = SECBUFFER_READONLY | SECBUFFER_TOKEN;
Buffers[2].pvBuffer = pTrailer;