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

Confira também

ICredentialProviderCredential2

ICredentialProviderUser::GetSid