次の方法で共有


RasEapGetIdentity 関数 (raseapif.h)

RAS 接続マネージャーは RasEapGetIdentity 関数を呼び出して、認証を要求しているユーザーの ID 情報を取得します。

構文

DWORD RasEapGetIdentity(
  [in]  DWORD       dwEapTypeId,
  [in]  HWND        hwndParent,
  [in]  DWORD       dwFlags,
  [in]  const WCHAR *pwszPhonebook,
  [in]  const WCHAR *pwszEntry,
  [in]  BYTE        *pConnectionDataIn,
  [in]  DWORD       dwSizeOfConnectionDataIn,
  [in]  BYTE        *pUserDataIn,
  [in]  DWORD       dwSizeOfUserDataIn,
  [out] BYTE        **ppUserDataOut,
  [out] DWORD       *pdwSizeOfUserDataOut,
  [out] WCHAR       **ppwszIdentityOut
);

パラメーター

[in] dwEapTypeId

ID ユーザー インターフェイスを呼び出す認証プロトコルを指定します。

[in] hwndParent

ユーザー インターフェイス ダイアログの親ウィンドウへのハンドル。 dwFlags パラメーターに RAS_EAP_FLAG_NON_INTERACTIVE フラグが含まれている場合、hwndParentNULL です

[in] dwFlags

認証プロセスを修飾する次のフラグを 0 個以上指定します。

フラグ 説明
RAS_EAP_FLAG_ROUTER
ダイヤルインしているコンピューターがルーターであることを指定します。 このフラグがない場合は、ダイヤルインしているコンピューターが RAS クライアントであることを示します。
RAS_EAP_FLAG_NON_INTERACTIVE
認証プロトコルがユーザー インターフェイスを起動しないように指定します。 認証プロトコルが指定されたデータから ID を特定できない場合は、エラー コード ERROR_INTERACTIVE_MODEを返す必要があります。 このフラグを指定すると、 hwndParent パラメーターは NULL になります
RAS_EAP_FLAG_LOGON
ローカル システム (Winlogon.exe から) にログオンするときにユーザー データを取得することを指定します。
RAS_EAP_FLAG_PREVIEW
ダイヤルする前にユーザーに ID 情報の入力を求めるメッセージを表示するように指定します。
RAS_EAP_FLAG_FIRST_LINK
この接続がマルチリンク接続の最初のリンクであることを示します。 詳細については、「[Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections)」を参照してください。
RAS_EAP_FLAG_MACHINE_AUTH
認証プロセスで認証にマシン資格情報を使用することを指定します。 資格情報には、MSCHAPv2 の場合と同様に、証明書、コンピューター名/パスワード、またはマシンを識別するその他の方法を指定できます。 認証プロトコルがマシン認証をサポートしていない場合は、エラー ERROR_NOT_SUPPORTEDを返す必要があります。
RAS_EAP_FLAG_8021X_AUTH
このセッションがワイヤレス コンテキストで実行されていることを指定します。

[in] pwszPhonebook

電話帳 (PBK) ファイルの完全なパスを指定する null で終わる Unicode 文字列へのポインター。 このパラメーターが NULL の場合、関数はシステム電話帳を使用します。

[in] pwszEntry

既存のエントリ名を指定する null で終わる Unicode 文字列へのポインター。

[in] pConnectionDataIn

電話帳エントリに現在格納されている接続固有のデータへのポインター。

[in] dwSizeOfConnectionDataIn

電話帳エントリに現在格納されている接続固有のデータのサイズを指定します。

[in] pUserDataIn

レジストリにこのユーザー用に現在格納されているユーザー固有のデータへのポインター。

[in] dwSizeOfUserDataIn

レジストリにこのユーザー用に現在格納されているユーザー固有のデータのサイズを指定します。

[out] ppUserDataOut

正常に戻った場合に、ユーザーの ID データを指すポインターへのポインター。 このデータは、RasEapBegin の呼び出し中に、PPP_EAP_INPUTpUserData メンバーの認証プロトコルに渡されます。

認証プロトコルは、ID データのメモリ バッファーを割り当てる必要があります。 RAS は RasEapFreeMemory を呼び出すことによってこのメモリを解放します。

[out] pdwSizeOfUserDataOut

ppUserDataOut パラメーターが指すデータのサイズを受け取る DWORD 変数へのポインター。

[out] ppwszIdentityOut

正常に戻った場合に、認証を要求しているユーザーを識別する null で終わる Unicode 文字列を指すポインターへのポインター。 この文字列は、RasEapBegin の呼び出し中に、PPP_EAP_INPUTpszIdentity メンバーの認証プロトコルに渡されます。

戻り値

関数が成功した場合、戻り値は NO_ERROR

関数がユーザー データにメモリを割り当てられなかった場合は、戻り値を ERROR_NOT_ENOUGH_MEMORYする必要があります。

関数が RAS_EAP_FLAG_NON_INTERACTIVE フラグを使用して呼び出されるが、ユーザーの ID を判断するためにユーザー インターフェイスを呼び出す必要がある場合、関数は ERROR_INTERACTIVE_MODEを返す必要があります。

関数が他の方法で失敗した場合、戻り値は Winerror.h、Raserror.h、または Mprerror.h からの適切なエラー コードである必要があります。

注釈

RasEapGetIdentityRasEapFreeMemory を実装する DLL では、複数の認証プロトコルがサポートされている場合があります。 dwEapTypeId パラメーターは、ID ユーザー インターフェイスを呼び出すプロトコルを指定します。

IEEE 802.1X および PPP プロトコルでは、RasEapFreeMemory を実装しないと RasEapGetIdentity は呼び出されません。

認証プロトコルは、RasEapBegin 中に PPP_EAP_INPUTpUserData メンバーの RasEapGetIdentity から返されたデータを受け取ります。 このユーザーのデータをレジストリに格納するには、認証プロトコルで、データを指すように PPP_EAP_OUTPUTpUserData メンバーを設定し、PPP_EAP_OUTPUTfSaveUserData メンバーを TRUE に設定する必要があります。

この関数は、 RAS 関数 RasGetEapUserIdentity によって呼び出されます。

RasEapGetIdentity にユーザー インターフェイスが表示される場合、ユーザー インターフェイスは LOWORD(wParam) が IDCANCEL と等しいWM_COMMANDメッセージをサポートする必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー raseapif.h

こちらもご覧ください

EAP 関数

拡張認証プロトコル リファレンス

ID 情報を取得しています

PPP_EAP_INPUT

RasEapFreeMemory

RasEapMakeMessage

RasGetEapUserIdentity