ITSGAuthenticateUserSink
COM公式ドキュメント
認証イベントをリモートデスクトップゲートウェイ (RD Gateway) に通知するメソッドを公開します。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
認証プラグインがユーザーの認証に成功したことをリモートデスクトップゲートウェイ (RD Gateway) に通知します。
| userName | LPWSTR | in | 接続を開始したユーザーの名前。 |
| userDomain | LPWSTR | in | 接続を開始したユーザーのドメイン。 |
| context | UINT_PTR | in | この接続を識別する値を格納する ULONG へのポインター。AuthenticateUser メソッドによって渡された値を使用します。 |
| userToken | HANDLE_PTR | in | ユーザーのユーザートークンを指定する HANDLE へのポインター。ユーザーが Windows を実行していない場合は、このパラメーターを NULL に設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、AuthenticateUser の実装から呼び出すことができます。認証に 1 秒を超える時間がかかる場合は、認証を実行するために別のスレッドを起動することをお勧めします。
OnUserAuthenticated メソッドを使用するサンプルについては、Remote Desktop Gateway Pluggable Authentication and Authorization サンプルを参照してください。
認証プラグインがユーザーの認証に失敗したことをリモートデスクトップゲートウェイ (RD Gateway) に通知します。
| context | UINT_PTR | in | この接続を識別する値を格納する ULONG へのポインター。AuthenticateUser メソッドによって渡された値を使用します。 |
| genericErrorCode | HRESULT | in | 認証失敗の原因を示す Windows エラーコード。 |
| specificErrorCode | HRESULT | in | このパラメーターは予約されています。このパラメーターは常にゼロに設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、 AuthenticateUser の実装から呼び出すことができます。認証に 1 秒を超える時間がかかる場合は、認証を実行するために別のスレッドを起動することをお勧めします。
OnUserAuthenticationFailed メソッドを使用するサンプルについては、Remote Desktop Gateway Pluggable Authentication and Authorization サンプルを参照してください。
ユーザーをサイレントに再認証および再承認する必要があることをリモートデスクトップゲートウェイ (RD Gateway) に通知します。
| context | UINT_PTR | in | この接続に固有の値を格納する ULONG へのポインター。 AuthenticateUser メソッドによって渡された値を使用します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが呼び出されると、RD Gateway はユーザーのサイレントな再認証および再承認を試みます。試行が失敗した場合、ユーザーを切断します。認証プラグインは、このメソッドを使用して、必要に応じてユーザーを定期的に再認証できます。
ReauthenticateUser メソッドを使用するサンプルについては、Remote Desktop Gateway Pluggable Authentication and Authorization サンプルを参照してください。
クライアントを切断する必要があることをリモートデスクトップゲートウェイ (RD Gateway) に通知します。
| context | UINT_PTR | in | 切断する接続を識別する値を格納する ULONG へのポインター。AuthenticateUser メソッドによって渡された値を使用します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
認証プラグインは、このメソッドを使用して必要に応じてクライアントを切断できます。たとえば、クライアントの Cookie の有効期限が切れた場合にこのメソッドを呼び出すことができます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITSGAuthenticateUserSink "{2C3E2E73-A782-47F9-8DFB-77EE1ED27A03}"
#usecom global ITSGAuthenticateUserSink IID_ITSGAuthenticateUserSink "{}"
#comfunc global ITSGAuthenticateUserSink_OnUserAuthenticated 3 wstr,wstr,sptr,sptr
#comfunc global ITSGAuthenticateUserSink_OnUserAuthenticationFailed 4 sptr,int,int
#comfunc global ITSGAuthenticateUserSink_ReauthenticateUser 5 sptr
#comfunc global ITSGAuthenticateUserSink_DisconnectUser 6 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。