AcceptSecurityContext
9/8/2008
Essa função permite que parte de um aplicativo transporte estabelecer um contexto de segurança entre o servidor e um remoto servidor cliente. O remoto cliente usa o InitializeSecurityContext função para iniciar o processo de estabelecer um contexto de segurança. O servidor pode ser necessário um ou mais símbolos de resposta do remoto cliente para o estabelecimento das contexto de segurança completo.
Observação
Para o AcceptSecurityContext função, entrada todos os buffers devem ser alinhados.
Syntax
SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(
PCredHandle phCredential,
PCtxtHandle phContext,
PSecBufferDesc pInput,
ULONG fContextReq,
ULONG TargetDataRep,
PCtxtHandle phNewContext,
PSecBufferDesc pOutput,
ULONG SEC_FAR* pfContextAttr,
PTimeStamp ptsExpiry
);
Parameters
- phCredential
[no] Ponteiro para um CredHandle estrutura que representa o identificador para servidor credenciais. As chamadas servidor o AcquireCredentialsHandle função para recuperar esse identificador. Para informações sobre CredHandle, consulte Identificadores SSPI.
- phContext
[no] Ponteiro para um CtxtHandle estrutura que representa o identificador contexto. Sobre o primeiro chamar a AcceptSecurityContext, esse ponteiro é NULL. Em chamar o segundo, este parâmetro indica o identificador para o contexto parcialmente formado que foi recuperado na phNewContext parâmetro, o primeiro chamar. Para informações sobre CtxtHandle, consulte Identificadores SSPI.
- pInput
[no] Ponteiro para um SecBufferDesc estrutura que contém o descritor buffer de entrada. Depending on o pacote de segurança, este parâmetro pode ser NULL se nenhum token inicial estiver pronto.
fContextReq
[no] Conjunto de bit sinalizadores que especificar os atributos que o servidor requer para o contexto seja estabelecida. A seguinte lista mostra os sinalizadores que podem ser usados em qualquer combinação:- ASC_REQ_ALLOCATE_MEMORY
- ASC_REQ_ALLOW_CONTEXT_REPLAY
- ASC_REQ_ALLOW_NON_USER_LOGONS
- ASC_REQ_ALLOW_NULL_SESSION
- ASC_REQ_CALL_LEVEL
- ASC_REQ_CONFIDENTIALITY
- ASC_REQ_CONNECTION
- ASC_REQ_DATAGRAM
- ASC_REQ_DELEGATE
- ASC_REQ_EXTENDED_ERROR
- ASC_REQ_FRAGMENT_SUPPLIED
- ASC_REQ_FRAGMENT_TO_FIT
- ASC_REQ_IDENTIFY
- ASC_REQ_INTEGRITY
- ASC_REQ_LICENSING
- ASC_REQ_MUTUAL_AUTH
- ASC_REQ_REPLAY_DETECT
- ASC_REQ_STREAM
- ASC_REQ_SEQUENCE_DETECT
- ASC_REQ_USE_DCE_STYLE
- ASC_REQ_USE_SESSION_KEY
- TargetDataRep
[no] A representação dados (byte ordenação e assim por diante) de destino. O chamador pode especificar SECURITY_NATIVE_DREP para indicar que o formato nativo está em uso.
- phNewContext
[out] Ponteiro para um CtxtHandle estrutura que representa o identificador para um novo contexto de segurança. Sobre o primeiro chamar a AcceptSecurityContext, esse parâmetro contém o identificador novo contexto. Em chamar o segundo, esse parâmetro pode ser o mesmo que o identificador especificado na phContext parâmetro. Para informações sobre CtxtHandle, consulte Identificadores SSPI.
- pOutput
[no] Ponteiro para um SecBufferDesc estrutura que contém o descritor reserva saída.
pfContextAttr
[out] Ponteiro para um conjunto de sinalizadores bit indicando os atributos do contexto estabelecido. Para obter mais informações sobre requisitos contexto, consulte A criptografia. A seguinte lista mostra os sinalizadores possíveis:- ASC_RET_ALLOCATED_MEMORY
- ASC_RET_ALLOW_CONTEXT_REPLAY
- ASC_RET_ALLOW_NON_USER_LOGONS
- ASC_RET_CALL_LEVEL
- ASC_RET_CONFIDENTIALITY
- ASC_RET_CONNECTION
- ASC_RET_DATAGRAM
- ASC_RET_DELEGATE
- ASC_RET_EXTENDED_ERROR
- ASC_RET_FRAGMENT_ONLY
- ASC_RET_IDENTIFY
- ASC_RET_INTEGRITY
- ASC_RET_LICENSING
- ASC_RET_MUTUAL_AUTH
- ASC_RET_NULL_SESSION
- ASC_RET_REPLAY_DETECT
- ASC_RET_SEQUENCE_DETECT
- ASC_RET_STREAM
- ASC_RET_THIRD_LEG_FAILED
- ASC_RET_USED_DCE_STYLE
- ASC_RET_USE_SESSION_KEY
- ptsExpiry
[out] Ponteiro para tempo de expiração do contexto. O provedor de segurança deve sempre recuperar esse valor no local tempo.
Return Value
A seguinte tabela mostra os possíveis valores de retorno.
Valor | Descrição |
---|---|
SEC_E_OK |
O contexto de segurança foi estabelecida com êxito. |
SEC_I_CONTINUE_NEEDED |
O servidor deve enviar a saída token para o cliente e aguardar um token retornado. O token retornado deve ser passado para outra chamar para AcceptSecurityContext. |
SEC_I_COMPLETE_NEEDED |
O servidor deve concluir compilação a mensagem do cliente e, em seguida, chamar o CompleteAuthToken função. |
SEC_I_COMPLETE_AND_CONTINUE |
O servidor deve chamar CompleteAuthToken e transmitir o token saída para o cliente. O servidor, em seguida, aguarda um token de retorno do cliente e, em seguida, torna chamar outro para AcceptSecurityContext. |
A seguinte tabela mostra os valores de erro possível.
Valor | Descrição |
---|---|
SEC_E_INVALID_TOKEN |
O token passado para a função é inválido. |
SEC_E_INVALID_HANDLE |
O identificador passado para a função é inválido. |
SEC_E_LOGON_DENIED |
Falha de logon. |
SEC_E_INTERNAL_ERROR |
O autoridade de segurança local não pôde ser contatado. |
SEC_E_NO_AUTHENTICATING_AUTHORITY |
Nenhuma autoridade pôde ser contatada para autenticação. |
Remarks
Essa função é a duplicata servidor para o InitializeSecurityContext função.
Quando uma solicitação vier no, o servidor usa o fContextReq parâmetro para especificar o que ele requer a sessão. Neste modo, um servidor pode especificar que os clientes devem ser capazes de usando um confidencial ou sessão Integrity-checked e ele poderá falhar clientes que não é possível atender a essa demanda. Como um alternativo, um servidor pode exigir nada e tudo o que o cliente pode fornecer ou requer é recuperado na pfContextAttr parâmetro.
Para um pacote que ofereça suporte a autenticação mútua three-LEG, a seqüência chamado é o seguinte:
- O cliente transmite um token para o servidor.
- Chamadas do servidor AcceptSecurityContext o tempo primeiro, gerando um token de resposta.
- O cliente passa esse token em um segundo chamar para InitializeSecurityContext, que gera um token final.
- O servidor usa esse token na chamar final para AcceptSecurityContext Para completo a sessão.
LAN Manager e Windows NT usar o seguinte estilo autenticação:
- O cliente se conecta ao negociar um protocolo.
- Chamadas do servidor AcceptSecurityContext Para configurar um contexto e gerar um desafio para o cliente.
- Chamadas do cliente InitializeSecurityContext e cria a resposta.
- Chamadas do servidor AcceptSecurityContext o tempo final para permitir que o pacote de segurança para verificar que a resposta é apropriado para o desafio.
Requirements
Header | security.h, sspi.h |
Library | secur32.lib |
Windows Embedded CE | Windows CE 2.10 and later |
Windows Mobile | Pocket PC 2000 and later, Smartphone 2002 and later |
See Also
Reference
AcquireCredentialsHandle
InitializeSecurityContext
SecBufferDesc