Freigeben über


SecBuffer- und SecBufferDesc-Beispielcode

In diesem Beispiel wird veranschaulicht, wie Sie ein Array von Sicherheitspuffern initialisieren. Es zeigt Eingabesicherheitspuffer, die von der Serverseite einer Verbindung initialisiert werden, um einen Aufruf an AcceptSecurityContext (Allgemein) vorzubereiten. Beachten Sie, dass der letzte Puffer das vom Client empfangene undurchsichtige Sicherheitstoken enthält und dass das SECBUFFER_READONLY Flag für SecBuffer-festgelegt ist.

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;