Compartilhar via


AcceptSecurityContext

Windows Mobile SupportedWindows Embedded CE Supported

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:

  1. O cliente transmite um token para o servidor.
  2. Chamadas do servidor AcceptSecurityContext o tempo primeiro, gerando um token de resposta.
  3. O cliente passa esse token em um segundo chamar para InitializeSecurityContext, que gera um token final.
  4. 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:

  1. O cliente se conecta ao negociar um protocolo.
  2. Chamadas do servidor AcceptSecurityContext Para configurar um contexto e gerar um desafio para o cliente.
  3. Chamadas do cliente InitializeSecurityContext e cria a resposta.
  4. 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