ICredentialProviderCredential2::GetUserSid 方法 (credentialprovider.h)
检索与此凭据关联的用户的 SID (安全标识符) 。
语法
HRESULT GetUserSid(
[out] LPWSTR *sid
);
参数
[out] sid
指向缓冲区的指针的地址,当此方法成功返回时,该缓冲区接收用户的 SID。
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
登录 UI 将使用此方法返回的 SID 将凭据磁贴与用户磁贴相关联。 若要将凭据与登录 UI 中的“其他用户”用户磁贴相关联,此方法应返回 S_FALSE 和 null SID。 “其他用户”磁贴通常仅在电脑加入域时有效。
示例
以下示例演示此方法的示例实现。 它检索与凭据对应的用户的 SID。
此处使用的 _pszUserSid 变量假定是 类的私有成员,在此方法外部定义并设置为用户的 SID。
ppszSid 指向的资源将由登录 UI 释放,因此无需在此处释放。
如果用户的 SID 不可用,该方法返回具有 null SID 的S_FALSE ,它将凭据与匿名用户磁贴相关联。 这将导致在已加入域的电脑上选择“其他用户”磁贴时显示该磁贴。
// 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 |
标头 | credentialprovider.h |