ドメイン\ユーザーとプレーンテキストのパスワードなど、いくつかのユーザー資格情報を持つクライアント コンソール アプリケーションがあります。クライアント アプリは、LogonUser (dwLogonType:LOGON32_LOGON_NETWORK) win32 API を呼び出して、そのユーザーの windowsidentity オブジェクトを取得します。私はwindowsidentityを使用して、偽装してWCFサービス呼び出しを行います(別のマシンでホストされています)。WCF サービスは、Windows 統合セキュリティで TCP プロトコルを使用するように構成されています。呼び出しは SecurityNegotiation 例外で失敗し、次のエラーが発生しました: リモート サーバーが相互認証要件を満たしていませんでした。
ここでの私の仮定は、エンドポイントが Windows 統合認証を使用するように構成されているため、サーバーが拒否する匿名のクライアント ID を認識していることです。私の推測では、Windows 委任用にサーバー アカウントを設定する必要があります。私の推測は正しいですか?
また、
- dwLogonType = LOGON32_LOGON_NETWORK の選択は正しいですか?
- LogOnUser (dwLogonType = LOGON32_LOGON_NETWORK) によって返されたトークンをリモート WCF 呼び出しに使用できますか?