Метод ICredentialProviderCredential2::GetUserSid (credentialprovider.h)

Извлекает идентификатор безопасности (SID) пользователя, связанного с данными учетными данными.

Синтаксис

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

Параметры

[out] sid

Адрес указателя на буфер, который при успешном возвращении этого метода получает идентификатор безопасности пользователя.

Возвращаемое значение

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Пользовательский интерфейс входа будет использовать возвращенный идентификатор безопасности из этого метода, чтобы связать плитку учетных данных с плиткой пользователя. Чтобы связать учетные данные с плиткой пользователя "Другой пользователь" в пользовательском интерфейсе входа, этот метод должен возвращать S_FALSE и идентификатор безопасности null. Плитка "Другой пользователь", как правило, действительна только при присоединении компьютера к домену.

Примеры

В следующем примере показан пример реализации этого метода. Он извлекает идентификатор безопасности пользователя, соответствующий учетным данным.

Переменная _pszUserSid , используемая здесь, считается частным членом класса, который определяется вне этого метода и устанавливается в качестве идентификатора безопасности пользователя.

Ресурс, на который указывает ppszSid , будет освобожден пользовательским интерфейсом входа, поэтому его не нужно освобождать здесь.

Если идентификатор безопасности пользователя недоступен, метод возвращает S_FALSE с идентификатором безопасности null, который связывает учетные данные с плиткой анонимного пользователя. Это приведет к тому, что плитка будет отображаться при выборе плитки "Другой пользователь" на компьютере, присоединенном к домену.


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

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header credentialprovider.h

См. также раздел

ICredentialProviderCredential2

ICredentialProviderUser::GetSid