共用方式為


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

另請參閱

ICredentialProviderCredential2

ICredentialProviderUser::GetSid