Método ICredentialProviderCredential2::GetUserSid (credentialprovider.h)
Recupera o SID (identificador de segurança) do usuário associado a essa credencial.
Sintaxe
HRESULT GetUserSid(
[out] LPWSTR *sid
);
Parâmetros
[out] sid
O endereço de um ponteiro para um buffer que, quando esse método retorna com êxito, recebe o SID do usuário.
Retornar valor
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
A interface do usuário de Logon usará o SID retornado desse método para associar o bloco de credencial a um bloco de usuário. Para associar a credencial ao bloco de usuário "Outro usuário" na interface do usuário do Logon, esse método deve retornar S_FALSE e um SID nulo. O bloco "Outro usuário" normalmente só é válido quando o computador é ingressado em um domínio.
Exemplos
O exemplo a seguir mostra uma implementação de exemplo desse método. Ele recupera o SID do usuário que corresponde à credencial.
A variável _pszUserSid usada aqui é considerada um membro privado da classe, definida fora desse método e definida como SID do usuário.
O recurso apontado por ppszSid será liberado pela interface do usuário de logon, portanto, ele não precisa ser liberado aqui.
Se o SID do usuário não estiver disponível, o método retornará S_FALSE com um SID nulo, que associa a credencial a um bloco de usuário anônimo. Isso fará com que o bloco apareça quando o bloco "Outro usuário" estiver selecionado em um computador ingressado no domínio.
// Gets the SID of the user corresponding to the credential.
HRESULT CSampleCredential::GetUserSid(__deref_out PWSTR *ppszSid)
{
*ppszSid = nullptr;
HRESULT hr = E_UNEXPECTED;
// _pszUserSid is a private member of CSampleCredential
if (_pszUserSid != nullptr)
{
// ppszSid will be freed by Logon UI
hr = SHStrDupW(_pszUserSid, ppszSid);
}
// Return S_FALSE with a null SID in ppszSid for the
// credential to be associated with an anonymous user tile.
else if (_fIsOtherUserTile)
{
hr = S_FALSE;
}
return hr;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | credentialprovider.h |