次の方法で共有


ICredentialProviderCredential2::GetUserSid メソッド (credentialprovider.h)

この資格情報に関連付けられているユーザーのセキュリティ識別子 (SID) を取得します。

構文

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

パラメーター

[out] sid

このメソッドが正常に返されると、ユーザーの SID を受け取るバッファーへのポインターのアドレス。

戻り値

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

注釈

ログオン UI では、このメソッドから返された SID を使用して、資格情報タイルをユーザー タイルに関連付けます。 ログオン UI の "その他のユーザー" ユーザー タイルに資格情報を関連付けるには、このメソッドは S_FALSE と null SID を返す必要があります。 通常、[その他のユーザー] タイルは、PC がドメインに参加している場合にのみ有効です。

次の例は、このメソッドの実装例を示しています。 資格情報に対応するユーザーの SID を取得します。

ここで使用 する_pszUserSid 変数は、 クラスのプライベート メンバーであると見なされ、このメソッドの外部で定義され、ユーザーの SID に設定されます。

ppszSid が指すリソースはログオン UI によって解放されるため、ここで解放する必要はありません。

ユーザーの SID が使用できない場合、メソッドは null SID でS_FALSE を返します。これにより、資格情報が匿名ユーザー タイルに関連付けられます。 これにより、ドメインに参加している PC で [その他のユーザー] タイルが選択されると、タイルが表示されます。


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