Метод 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 |