Share via


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

Recupera el identificador de seguridad (SID) del usuario asociado a esta credencial.

Sintaxis

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

Parámetros

[out] sid

La dirección de un puntero a un búfer que, cuando este método devuelve correctamente, recibe el SID del usuario.

Valor devuelto

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

La interfaz de usuario de inicio de sesión usará el SID devuelto de este método para asociar el icono de credenciales a un icono de usuario. Para asociar la credencial con el icono de usuario "Otro usuario" en la interfaz de usuario de inicio de sesión, este método debe devolver S_FALSE y un SID nulo. El icono "Otro usuario" normalmente solo es válido cuando el equipo está unido a un dominio.

Ejemplos

En el ejemplo siguiente se muestra una implementación de ejemplo de este método. Recupera el SID del usuario que corresponde a la credencial.

Se supone que la variable _pszUserSid usada aquí es un miembro privado de la clase, definida fuera de este método y establecida en el SID del usuario.

La interfaz de usuario de inicio de sesión liberará el recurso al que apunta ppszSid , por lo que no es necesario liberar aquí.

Si el SID del usuario no está disponible, el método devuelve S_FALSE con un SID nulo, que asocia la credencial a un icono de usuario anónimo. Esto hará que el icono aparezca cuando se selecciona el icono "Otro usuario" en un equipo unido a un 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;
}                     
                    

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado credentialprovider.h

Consulte también

ICredentialProviderCredential2

ICredentialProviderUser::GetSid