Compartilhar via


AcquireCredentialsHandle

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função permite que os aplicativos adquirir um identificador para credenciais preexistentes associado com o usuário em cujo nome é feita a chamar. Essas credenciais preexistentes são estabelecidas por um logon sistema não descrito aqui. No entanto, isso é diferente de logon para a rede e não implica coleta de credenciais.

Syntax

SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandle( 
  SEC_WCHAR SEC_FAR* pszPrincipal, 
  SEC_WCHAR SEC_FAR* pszPackage,
  ULONG fCredentialUse, 
  void SEC_FAR* pvLogonId, 
  void SEC_FAR* pAuthData,
  SEC_GET_KEY_FN pGetKeyFn, 
  void SEC_FAR* pvGetKeyArgument, 
  PCredHandle phCredential,
  PTimeStamp ptsExpiry 
);

Parameters

  • pszPrincipal
    [no] Ponteiro para o nome do principal para o qual adquirir um identificador para credenciais. Observe que, se o processo solicitando o identificador não tem acessar para as credenciais, a função retornará um erro. Um seqüência de caracteres nula indica que o processo requer um identificador para as credenciais do usuário em cujo contexto de segurança ele estiver em execução.
  • pszPackage
    [no] Ponteiro para o nome do pacote de segurança com que as credenciais serão usadas. Este é um pacote de segurança nome recuperado na Nome membro de um SecPkgInfo estrutura recuperados pelo EnumerateSecurityPackages função.
  • fCredentialUse
    [no] Sinalizador que indica como as credenciais serão usados. A seguinte lista mostra os valores possíveis. Este parâmetro pode ser uma desses valores:

    • SECPKG_CRED_INBOUND
    • SECPKG_CRED_OUTBOUND
    • SECPKG_CRED_BOTH
    • SECPKG_CRED_DEFAULT
    • SECPKG_CRED_RESERVED

    As credenciais criados com a opção CRED_INBOUND podem ser usados somente para validar de entrada chamadas. Eles não podem ser usados para acessar objetos.

  • pvLogonId
    [no] Ponteiro para um identificador logon Windows NT–Style (LUID). Este parâmetro é fornecido para arquivo - sistema processa como como rede redirecionadores. Este parâmetro pode ser NULL.
  • pAuthData
    [no] Ponteiro para dados Package-specific. Este parâmetro pode ser NULL, indicando que as credenciais usar como padrão para esse pacote devem ser usadas. O provedor de suporte de segurança NTLM (SSP) aceita um ponteiro para um SEC_WINNT_AUTH_IDENTITY estrutura contendo o nome usuário, domínio nome e senha.
  • pGetKeyFn
    [no] Não suportado. Definir como NULL.
  • pvGetKeyArgument
    [no] Não suportado. Definir como NULL.
  • phCredential
    [out] Ponteiro para um CredHandle estrutura que contém o identificador credencial. Consulte Identificadores SSPI Para informações sobre CredHandle.
  • ptsExpiry
    [out] Ponteiro opcional para o tempo no qual o expirar credenciais recuperados. Esse valor depende de pacote de segurança. O provedor de segurança deve sempre recuperar esse valor no local tempo.

Return Value

Retorna SEC_E_OK para indicar êxito. A seguinte tabela mostra os valores de erro possível.

Valor Descrição

SEC_E_UNKNOWN_CREDENTIALS

As credenciais fornecidas para o pacote não foram reconhecidas.

SEC_E_NO_CREDENTIALS

Há credenciais são disponível na pacote de segurança.

SEC_E_NOT_OWNER

O chamador da função não possui as credenciais necessárias.

SEC_E_INSUFFICIENT_MEMORY

Não há memória disponível para concluir esta solicitação.

SEC_E_INTERNAL_ERROR

A Autoridade de segurança local não pode ser contatada.

SEC_E_SECPKG_NOT_FOUND

O pacote de segurança necessário não existe.

Remarks

Essa função recupera um identificador para as credenciais de um principal (usuário, cliente) como usado por um pacote de segurança específico. O identificador pode ser usado em chamadas subseqüentes para o AcceptSecurityContext e InitializeSecurityContext funções.

O AcquireCredentialsHandle função não permitirá que um processo obter um identificador para credenciais que não são relacionado para o processo; Em outras palavras, não é um processo get as credenciais de outro usuário conectado para o mesmo computador. Não é nenhuma maneira de determinar se um processo é um cavalo de Tróia se ele for executado, o usuário.

Essa função usa o seguinte algoritmo para determinar se deve conceder a solicitação para um identificador para as credenciais.

Se o chamador é um processo sistema com o privilégio SE_TCB_NAME (por exemplo, um FSP) e o chamador fornece tanto o nome e identificador logon, a função verifica que eles correspondem antes de recuperar as credenciais. Se apenas um for fornecido, a função recupera um identificador para esse identificador.

Um chamador que não é um processo sistema só pode obter um identificador para as credenciais sob as quais é execução. O chamador pode fornecer o nome ou identificador de logon, mas deve ser para a atual sessão ou houver falha na solicitação.

Um pacote pode chamar a função no pGetKeyFn fornecidos por executar o RPC-transporte tempo. Se o transporte não suporte a noção de callback para recuperar credenciais, este parâmetro devem ser NULL.

Para os chamadores modo kernel, a seguinte diferenças devem ser observadas: Os parâmetros seqüência de caracteres dois são seqüências de caracteres Unicode e os valores reserva devem ser alocados na memória virtual processo, não a partir de pool.

Quando o chamador não precisa de credenciais, ele deve chamar o FreeCredentialsHandle função.

Requirements

Header security.h, sspi.h
Library secur32.lib
Windows Embedded CE Windows CE 2.10 and later
Windows Mobile Smartphone 2002 and later

See Also

Reference

AcceptSecurityContext
EnumerateSecurityPackages
FreeCredentialsHandle
InitializeSecurityContext
SEC_WINNT_AUTH_IDENTITY
SecPkgInfo