Win32 API 日本語リファレンス
ホームUI.Shell › ICredentialProviderUser

ICredentialProviderUser

COM
IID13793285-3ea6-40fd-b420-15f47da41fbb継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ログオン UI または資格情報 UI に含まれる個々のユーザーの特定のプロパティを取得するためのメソッドを提供します。

解説(Remarks)

Windows 8 では、資格情報プロバイダーをユーザーごとにグループ化する機能が導入されました。ログオン UI は、ユーザーごとに複数の資格情報プロバイダーのセットを表示するのではなく、ユーザーのセットを表示できます。ユーザーを選択すると、そのユーザーに関連付けられた個々の資格情報プロバイダーのオプションが表示されます。

実装するタイミング

サードパーティがこのインターフェイスを実装することはありません。実装は Windows に含まれています。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetSid(LPWSTR* sid)

ユーザーのセキュリティ識別子 (SID) を取得します。(ICredentialProviderUser.GetSid)

sidLPWSTR*outこのメソッドが正常に返された場合に、ユーザーの SID を受け取るバッファーへのポインターのアドレス。このリソースを解放するために CoTaskMemFree 関数を呼び出すのは、呼び出し元の責任です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

この SID は、ログオン UI と資格情報 UI の両方に適用されます。

この値は、ICredentialProviderUser::GetValue を通じて PROPVARIANT として取得することもできます。

vtbl 4 HRESULT GetProviderID(GUID* providerID)

このユーザーのアカウントプロバイダーの ID を取得します。

providerIDGUID*outこのメソッドが正常に返された場合に、ユーザーのアカウントプロバイダーの GUID を受け取る値へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

この GUID は、ログオン UI と資格情報 UI の両方に適用されます。

この値は、ICredentialProviderUser::GetValue を通じて PROPVARIANT として取得することもできます。

vtbl 5 HRESULT GetStringValue(PROPERTYKEY* key, LPWSTR* stringValue)

入力値に基づいて、ICredentialProviderUser オブジェクトから文字列プロパティを取得します。

keyPROPERTYKEY*in

取得するプロパティを指定する、次のいずれかの値。

REFPROPERTYKEY 説明 適用対象
PKEY_Identity_DisplayName ユーザーのフレンドリ名。 ログオン UI および資格情報 UI
PKEY_Identity_LogonStatusString ユーザーのログオン状態を示すローカライズされた文字列。 ログオン UI のみ
PKEY_Identity_PrimarySid ユーザーの SID。 ログオン UI および資格情報 UI
PKEY_Identity_ProviderID ユーザーのプロバイダー ID。 ログオン UI および資格情報 UI
PKEY_Identity_QualifiedUserName 認証バッファーをパックするために使用される名前。 ログオン UI および資格情報 UI
PKEY_Identity_UserName ユーザー名。 ログオン UI および資格情報 UI
stringValueLPWSTR*outこのメソッドが正常に返された場合に、要求された文字列を受け取るバッファーへのポインターのアドレス。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

これらの各値は、ICredentialProviderUser::GetValue を通じて PROPVARIANT として取得することもできます。

次のユーザーを含むシナリオを考えます。

このシナリオでは、次の表に各 key 値のサンプルデータを示します。
REFPROPERTYKEY ドメインユーザー ローカルユーザー Microsoft アカウント
PKEY_Identity_DisplayName "Lisa Andrews" "Lisa Andrews" "Lisa Andrews"
PKEY_Identity_LogonStatusString "Signed-in" "Locked" "Remotely signed in from lisa-pc"
PKEY_Identity_PrimarySid "{S-1-5-21-2279990834-2601404236-735077814-1001}" "{S-1-5-21-2279990834-2601404236-735077814-1001}" "{S-1-5-21-2279990834-2601404236-735077814-1001}"
PKEY_Identity_ProviderID "{A198529B-730F-4089-B646-A12557F5665E}" "{A198529B-730F-4089-B646-A12557F5665E}" 事前定義されていません
PKEY_Identity_QualifiedUserName "contoso\lisa" "lisa-pc\lisa" "<account provider name>\lisa@contoso.com"
PKEY_Identity_UserName "contoso\lisa" "lisa" "lisa@contoso.com"
vtbl 6 HRESULT GetValue(PROPERTYKEY* key, PROPVARIANT* value)

ユーザーに設定された指定のプロパティ値を取得します。

keyPROPERTYKEY*in

取得するプロパティを指定する、次のいずれかの値。

REFPROPERTYKEY 適用対象
PKEY_Identity_DisplayName ログオン UI および資格情報 UI
PKEY_Identity_UserName ログオン UI および資格情報 UI
PKEY_Identity_QualifiedUserName ログオン UI および資格情報 UI
PKEY_Identity_LogonStatusString ログオン UI のみ
PKEY_Identity_PrimarySid ログオン UI および資格情報 UI
PKEY_Identity_ProviderID ログオン UI および資格情報 UI
valuePROPVARIANT*outこのメソッドが正常に返された場合に、要求されたプロパティ値を受け取る値へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

PKEY_Identity_DisplayName、PKEY_Identity_UserName、PKEY_Identity_QualifiedUserName、および PKEY_Identity_LogonStatusString の各値は、GetStringValue メソッドを通じて文字列として直接取得できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICredentialProviderUser "{13793285-3EA6-40FD-B420-15F47DA41FBB}"
#usecom global ICredentialProviderUser IID_ICredentialProviderUser "{}"
#comfunc global ICredentialProviderUser_GetSid          3 var
#comfunc global ICredentialProviderUser_GetProviderID   4 var
#comfunc global ICredentialProviderUser_GetStringValue  5 var,var
#comfunc global ICredentialProviderUser_GetValue        6 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。