次の方法で共有


ID 情報を取得しています

認証プロトコルを実装するベンダーは、認証を要求するユーザーの初期識別情報を取得する関数インターフェイスを提供する場合もあります。

ベンダーは、次の関数を実装する必要があります。

これらの関数は、認証プロトコルと同じ DLL、または別の DLL に実装できます。 また、ID 関数を実装する DLL では、複数の認証プロトコルがサポートされる場合があります。 これらの関数の DLL へのパスは、認証プロトコルのキーの下の RAS_EAP_VALUENAME_IDENTITY レジストリ値に格納されます。 このレジストリ値の作成の詳細については、「EAP のインストール」を参照してください。

RasEapGetIdentity 関数は、通常、ユーザーの ID 情報を取得するためのユーザー インターフェイス (UI) を表示します。 ただし、dwFlags パラメーターに RAS_EAP_FLAG_NON_INTERACTIVE フラグが含まれている場合、RasEapGetIdentity は UI を表示しません。

RasEapGetIdentity が UI を表示する場合、UI は、LOWORD の値 (wParam) が IDCANCEL と等しい WM_COMMAND メッセージをサポートする必要があります。

この EAP のレジストリ内にある RAS_EAP_VALUENAME_INVOKE_NAMEDLG 値が 0 に設定されている場合、認証サービスは RasEapGetIdentity を呼び出します。 RAS_EAP_VALUENAME_INVOKE_NAMEDLG が存在しないか、存在しても 1 に設定されている場合、認証サービスは、標準のシステム ユーザー名ダイアログ ボックスを表示します。

EAP ベンダーは、RAS_EAP_VALUENAME_INVOKE_NAMEDLG に加えて、関連する値 RAS_EAP_VALUENAME_INVOKE_PWDDLGをレジストリ内に作成できます。 この値が存在し、0 に設定されている場合、サービスは、標準のシステム パスワード ダイアログが表示されます。 この値は、指紋スキャンなどの生体認証方法を実装する場合に役立ちます。 RAS_EAP_VALUENAME_INVOKE_NAMEDLG と RAS_EAP_VALUENAME_INVOKE_PWDDLG の両方の値が 0 の場合、ID UI を使用して ID と生体認証情報の両方を取得できます。 ただし、RAS_EAP_VALUENAME_INVOKE_PWDDLG のみが 0 の場合、認証サービスは RasEapGetIdentity を呼び出しません。 この場合は、対話型ユーザー インターフェイスを使用して生体認証情報を取得できます。

これらのレジストリ値の詳細については、「認証プロトコル レジストリ値」を参照してください。

RasEapGetIdentity によって取得された情報は、RasEapBegin の呼び出し中に認証プロトコルに渡されます。 この情報は、PPP_EAP_INPUT 構造体の pszIdentity メンバーと pUserData メンバーによって指示されます。 この情報をクライアント コンピューター上のレジストリに保存するには、情報が認証プロトコルによって RasEapMakeMessagepEapOutput パラメーターに返される必要があります。

RasEapBegin を呼び出した後、認証サービスは、RasEapFreeMemory を呼び出して、このデータによって占有されているメモリを解放します。 このため、認証プロトコルは、RasEapBegin の呼び出し中に情報をプライベート メモリ バッファにコピーする必要があります。