私は、別のサーバー上のコンソールアプリケーションによってホストされているWCFサービスと通信するコンソールアプリケーションクライアントを持っています。それはWindows認証とセキュリティモード=メッセージを使用します。WCF:クライアントのなりすまし
クライアントの資格情報を偽装するようにサービスを変更するまでは問題ありません。私はそれを達成するために行う変更は、次のとおりです。
1.私のメソッドシグネチャに[OperationBehavior(Impersonation = ImpersonationOption.Required)]
を追加し、サービスの振る舞い
2に<serviceAuthorization impersonateCallerForAllOperations="true" />
を追加
私はその後、私のサービスをホストし、それはすべて、通常のように良い実行されます。
私のクライアントで私が唯一のものは追加です:
ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
私はその後、私のクライアントを実行して、エラーを取得:
サーバーは、意味のある回答を提供していませんでした。これは、契約の不一致、早すぎるセッションのシャットダウン、または内部サーバーのエラーによって引き起こされる可能性があります。
私はクライアントの設定に行う必要がある他の何かがありますか?
@Tomこれで、OperationBehaviourを変更した後にクライアントを再コンパイルしましたか? – JTew