私は2つのwcfサービスを両方とも同じマシン上のIISでホストしています。 サービスAはクライアントによって呼び出され、転送セキュリティを持つBasicHttpBinding
とNTLM credentialtype
を使用します。 サービスAは、IISでもホストされているが、トランスポートセキュリティを持つWsHttpBinding
とNTLM credentialtype
を使用するサービスBを呼び出す必要があります。1つのwcfサービスから別のwcfサービスに資格情報を渡す
IISは、統合Windows認証を使用するように構成されています。
私は403禁断のメッセージにを得た最初の試み:
System.ServiceModel.Security.MessageSecurityException : The HTTP request was forbidden with client authentication scheme 'Ntlm'.
System.Net.WebException: The remote server returned an error: (403) Forbidden.
私は、サービスBへのサービスAからの呼び出しに使用されるアプリケーションプールのIDを作るときので、これは正常です。
私の2回目の試みでは、サービスBの呼び出しを偽装しようとしましたが、操作のすべてのコードが呼び出し元のアカウントで実行されるという問題がありました。このアカウントにはサーバーに対するACLアクセス権はなく、これらのアクセス許可を提供することは選択肢ではありません。 次のエラーが記録されます。
System.IO.FileLoadException : Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE))
は、どのように私は、セキュリティACLのか、アプリケーションプールID変更せずにこの問題を解決するだろうか?