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 無法使用,此方法會傳回 S_FALSE 與 null SID,這會將認證與匿名使用者磚產生關聯。 這會導致在已加入網域的計算機上選取 [其他使用者] 磚時顯示磚。
// 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 |