Partager via


Méthode ICredentialProviderCredential2 ::GetUserSid (credentialprovider.h)

Récupère l’identificateur de sécurité (SID) de l’utilisateur associé à ces informations d’identification.

Syntaxe

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

Paramètres

[out] sid

Adresse d’un pointeur vers une mémoire tampon qui, lorsque cette méthode retourne correctement, reçoit le SID de l’utilisateur.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

L’interface utilisateur d’ouverture de session utilise le SID retourné par cette méthode pour associer la vignette d’informations d’identification à une vignette utilisateur. Pour associer les informations d’identification à la vignette « Autre utilisateur » dans l’interface utilisateur d’ouverture de session, cette méthode doit retourner S_FALSE et un SID Null. La vignette « Autre utilisateur » n’est normalement valide que lorsque le PC est joint à un domaine.

Exemples

L’exemple suivant montre un exemple d’implémentation de cette méthode. Il récupère le SID de l’utilisateur qui correspond aux informations d’identification.

La variable _pszUserSid utilisée ici est supposée être un membre privé de la classe, définie en dehors de cette méthode et définie sur le SID de l’utilisateur.

La ressource pointée par ppszSid sera libérée par l’interface utilisateur d’ouverture de session. Elle n’a donc pas besoin d’être libérée ici.

Si le SID de l’utilisateur n’est pas disponible, la méthode retourne S_FALSE avec un SID null, qui associe les informations d’identification à une vignette utilisateur anonyme. Cela entraîne l’affichage de la vignette lorsque la vignette « Autre utilisateur » est sélectionnée sur un PC joint à un domaine.


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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête credentialprovider.h

Voir aussi

ICredentialProviderCredential2

ICredentialProviderUser ::GetSid