Função SspiAcceptSecurityContextAsync (sspi.h)
A função SspiAcceptSecurityContextAsync
Nota
Essa função serve como o equivalente assíncrono à função AcceptSecurityContext.
Sintaxe
SECURITY_STATUS SspiAcceptSecurityContextAsync(
SspiAsyncContext *AsyncContext,
PCredHandle phCredential,
PCtxtHandle phContext,
PSecBufferDesc pInput,
unsigned long fContextReq,
unsigned long TargetDataRep,
PCtxtHandle phNewContext,
PSecBufferDesc pOutput,
unsigned long *pfContextAttr,
PTimeStamp ptsExpiry
);
Parâmetros
AsyncContext
O contexto de chamada assíncrona.
phCredential
Um identificador para as credenciais do servidor. Para recuperar esse identificador, o servidor chama a função SspiAcquireCredentialsHandleAsync
phContext
Um ponteiro para uma estrutura de
pInput
Um ponteiro para uma estrutura
O primeiro buffer deve ser do tipo SECBUFFER_TOKEN e conter o token de segurança recebido do cliente. O segundo buffer deve ser do tipo SECBUFFER_EMPTY.
fContextReq
Sinalizadores de bit que especificam os atributos exigidos pelo servidor para estabelecer o contexto.
Consulte AcceptSecurityContext: fContextReq para obter uma lista completa de valores de parâmetro.
TargetDataRep
A representação de dados, como ordenação de bytes, no destino. Esse parâmetro pode ser SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.
phNewContext
Um ponteiro para uma estrutura de
pOutput
Um ponteiro para uma estrutura
Na saída, esse buffer recebe um token para o contexto de segurança assíncrono. O token deve ser enviado ao cliente. A função também pode retornar um buffer do tipo SECBUFFER_EXTRA.
pfContextAttr
Um ponteiro para um conjunto de sinalizadores de bits que indicam os atributos do contexto estabelecido.
Consulte AcceptSecurityContext: pfContextAttr para obter descrições dos atributos.
ptsExpiry
Um ponteiro para uma estrutura
Consulte AcceptSecurityContext: ptsExpiry.
Valor de retorno
Retorna SEC_E_OK se a solicitação assíncrona para estabelecer um contexto de segurança foi enfileirada com êxito para execução. Caso contrário, ele retornará o erro gerado ao tentar enfileira-lo. Para recuperar o status da operação, use SspiGetAsyncCallStatus.
Se o contexto de segurança recebido do cliente tiver sido aceito, SspiGetAsyncCallStatus retornará SEC_E_OK ou um dos códigos SSPI na tabela abaixo. Caso contrário, ele poderá retornar SEC_I_ASYNC_CALL_PENDING se a chamada ainda estiver em andamento ou qualquer um dos seguintes códigos de erro fatais na segunda tabela abaixo.
Código de retorno |
Descrição |
---|---|
SEC_E_INCOMPLETE_MESSAGE 0x80090318L |
A função foi bem-sucedida. Os dados no buffer de entrada estão incompletos. O aplicativo deve ler dados adicionais do cliente e chamar SspiAcceptSecurityContextAsync novamente. |
SEC_I_COMPLETE_AND_CONTINUE 0x00090314L |
A função foi bem-sucedida. O servidor deve chamar CompleteAuthToken e passar o token de saída para o cliente. Em seguida, o servidor deve aguardar um token de retorno do cliente antes de fazer outra chamada para SspiAcceptSecurityContextAsync. |
SEC_I_COMPLETE_NEEDED 0x00090313L |
A função foi bem-sucedida. O servidor deve concluir a compilação da mensagem do cliente antes de chamar CompleteAuthToken. |
SEC_I_CONTINUE_NEEDED 0x00090312L |
A função foi bem-sucedida. O servidor deve enviar o token de saída para o cliente e aguardar um token retornado. O token retornado deve ser passado em pInput para outra chamada para SspiAcceptSecurityContextAsync. |
Códigos de erro fatais
Código de retorno |
Descrição |
---|---|
SEC_E_INSUFFICIENT_MEMORY 0x80090300L |
Falha na função. Não há memória suficiente disponível para concluir a ação solicitada. |
SEC_E_INTERNAL_ERROR 0x80090304L |
Falha na função. Ocorreu um erro que não foi mapeado para um código de erro SSPI. |
SEC_E_INVALID_HANDLE 0x80100003L |
Falha na função. O identificador passado para a função não é válido. |
SEC_E_INVALID_TOKEN 0x80090308L |
Falha na função. O token passado para a função não é válido. |
SEC_E_LOGON_DENIED 0x8009030CL |
Falha no logon. |
SEC_E_NO_AUTHENTICATING_AUTHORITY 0x80090311L |
Falha na função. Nenhuma autoridade pode ser contatada para autenticação. Isso pode ser devido às seguintes condições:
|
SEC_E_NO_CREDENTIALS 0x8009030EL |
Falha na função. O identificador de credenciais |
SEC_E_UNSUPPORTED_FUNCTION 0x80090302L |
Falha na função. O parâmetro fContextReq especificou um sinalizador de atributo de contexto (ASC_REQ_DELEGATE ou ASC_REQ_PROMPT_FOR_CREDS) que não era válido. |
Observações
A função SspiAcceptSecurityContextAsync
O chamador é responsável por determinar se os atributos de contexto final são suficientes. Por exemplo, se a confidencialidade (criptografia) foi solicitada, mas não pôde ser estabelecida, alguns aplicativos podem optar por desligar a conexão imediatamente. Se o contexto de segurança não puder ser estabelecido, o servidor deverá liberar o contexto parcialmente criado chamando a função SspiDeleteSecurityContextAsync.
Consulte AcceptSecurityContext para obter comentários adicionais.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10, versão 1607 [somente drivers no modo kernel] |
servidor com suporte mínimo | Windows Server 2016 [somente drivers no modo kernel] |
cabeçalho | sspi.h |
Consulte também
SspiAcquireCredentialsHandleAsync