Condividi tramite


Metodo ICredentialProviderCredential2::GetUserSid (credentialprovider.h)

Recupera l'identificatore di sicurezza (SID) dell'utente associato a questa credenziale.

Sintassi

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

Parametri

[out] sid

L'indirizzo di un puntatore a un buffer che, quando questo metodo restituisce correttamente, riceve il SID dell'utente.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

L'interfaccia utente di accesso userà il SID restituito da questo metodo per associare il riquadro delle credenziali a un riquadro utente. Per associare le credenziali al riquadro dell'utente "Altro utente" nell'interfaccia utente di accesso, questo metodo deve restituire S_FALSE e un SID null. Il riquadro "Altro utente" è normalmente valido solo quando il PC viene aggiunto a un dominio.

Esempio

Nell'esempio seguente viene illustrata un'implementazione di esempio di questo metodo. Recupera il SID dell'utente che corrisponde alle credenziali.

La variabile _pszUserSid usata qui si presuppone che sia un membro privato della classe, definita all'esterno di questo metodo e impostata sul SID dell'utente.

La risorsa a cui fa riferimento ppszSid verrà liberata dall'interfaccia utente di accesso, quindi non deve essere liberata qui.

Se il SID dell'utente non è disponibile, il metodo restituisce S_FALSE con un SID Null, che associa le credenziali a un riquadro utente anonimo. In questo modo il riquadro verrà visualizzato quando viene selezionato il riquadro "Altro utente" in un PC aggiunto al dominio.


// 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;
}                     
                    

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione credentialprovider.h

Vedi anche

ICredentialProviderCredential2

ICredentialProviderUser::GetSid