QueryContextAttributesA 関数 (sspi.h)

QueryContextAttributes (CredSSP) 関数を使用すると、トランスポート アプリケーションは、セキュリティ コンテキストの特定の属性について資格情報セキュリティ サポート プロバイダー (CredSSP) セキュリティ パッケージに対してクエリを実行できます。

構文

SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(
  [in]  PCtxtHandle   phContext,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer
);

パラメーター

[in] phContext

クエリを実行するセキュリティ コンテキストへのハンドル。

[in] ulAttribute

返されるコンテキストの属性。 このパラメーターには、次の値のいずれかを指定できます。 特に指定がない限り、属性はクライアントとサーバーの両方に適用されます。

意味
SECPKG_ATTR_C_ACCESS_TOKEN
0x80000012
pBuffer パラメーターには、現在のセキュリティ コンテキストのアクセス トークンを指定するSecPkgContext_AccessToken構造体へのポインターが含まれています。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_C_FULL_ACCESS_TOKEN
0x80000082
pBuffer パラメーターには、現在のセキュリティ コンテキストのアクセス トークンを指定するSecPkgContext_AccessToken構造体へのポインターが含まれています。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_CERT_TRUST_STATUS
0x80000084
pBuffer パラメーターには、証明書に関する信頼情報を指定するCERT_TRUST_STATUS構造体へのポインターが含まれています。

この属性は、クライアントでのみサポートされます。

SECPKG_ATTR_CREDS
0x80000080
pBuffer パラメーターには、クライアント資格情報を指定するSecPkgContext_ClientCreds構造体へのポインターが含まれています。

クライアント資格情報には、ユーザー名とパスワード、またはユーザー名とスマート カード PIN のいずれかを指定できます。

この属性は、サーバーでのみサポートされます。

SECPKG_ATTR_CREDS_2
0x80000086
pBuffer パラメーターには、クライアント資格情報を指定するSecPkgContext_ClientCreds構造体へのポインターが含まれています。

クライアント資格情報がユーザー名とパスワードの場合、バッファーはパック されたKERB_INTERACTIVE_LOGON 構造です。

クライアント資格情報がユーザー名とスマート カード PIN の場合、バッファーはパックされたKERB_CERTIFICATE_LOGON構造になります。

クライアント資格情報がオンライン ID 資格情報の場合、バッファーはマーシャリング されたSEC_WINNT_AUTH_IDENTITY_EX2 構造体です。

この属性は CredSSP サーバーでのみサポートされます。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

SECPKG_ATTR_NEGOTIATION_PACKAGE
0x80000081
pBuffer パラメーターには、Microsoft Negotiate プロバイダーによってネゴシエートされる認証パッケージの名前を指定するSecPkgContext_PackageInfo">SecPkgContext_PackageInfo 構造体へのポインターが含まれています。
SECPKG_ATTR_PACKAGE_INFO
10
pBuffer パラメーターには、SecPkgContext_PackageInfo">SecPkgContext_PackageInfo 構造体へのポインターが含まれています。

使用中の SSP に関する情報を返します。

SECPKG_ATTR_SERVER_AUTH_FLAGS
0x80000083
pBuffer パラメーターには、現在のセキュリティ コンテキストのフラグに関する情報を指定するSecPkgContext_Flags構造体へのポインターが含まれています。

この属性は、クライアントでのみサポートされます。

SECPKG_ATTR_SIZES
0x0
pBuffer パラメーターには、SecPkgContext_Sizes構造体へのポインターが含まれています。

メッセージごとの関数と認証交換で使用される構造体のサイズを照会します。

SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
pBuffer パラメーターには、SecPkgContext_SubjectAttributes構造体へのポインターが含まれています。

この値は、接続のセキュリティ属性に関する情報を返します。

この値は CredSSP サーバーでのみサポートされます。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

[out] pBuffer

属性を受け取る構造体へのポインター。 構造体の型は 、ulAttribute パラメーターの値によって異なります。

戻り値

関数が成功すると、SEC_E_OKが返されます。

関数が失敗した場合は、次のエラー コードを返すことができます。

リターン コード/値 Description
SEC_E_INVALID_HANDLE
0x80100003
関数が失敗しました。 phContext パラメーターは、不完全なコンテキストへのハンドルを指定します。
SEC_E_UNSUPPORTED_FUNCTION
0x80090302
関数が失敗しました。 ulAttribute パラメーターの値が無効です。

注釈

pBuffer パラメーターによって指される構造体は、クエリ対象の属性によって異なります。

呼び出し元は pBuffer 構造体自体を割り当てる必要があります。一方、SSP は pBuffer 構造体の可変サイズのメンバーを保持するために必要なメモリを割り当てます。 SSP によって割り当てられたメモリは、 FreeContextBuffer 関数を呼び出して解放する必要があります。

注意

sspi.h ヘッダーは、QueryContextAttributes をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー sspi.h (Security.h を含む)
Library Secur32.lib
[DLL] Secur32.dll

こちらもご覧ください

CERT_CONTEXT

FreeContextBuffer

SSPI 関数

SecPkgContext_ClientCreds

SecPkgContext_Sizes