AcquireCredentialsHandle
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