同じマシン上のIISで両方ともホストされている2つのwcfサービスがあります。サービスAはクライアントによって呼び出され、BasicHttpBinding
トランスポートセキュリティとで使用されますNTLM credentialtype
。サービスAは、IISでもホストされているがWsHttpBinding
、トランスポートセキュリティとを使用するサービスBを呼び出す必要がありNTLM credentialtype
ます。
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.
サービスAからサービスBに電話をかけると、アプリケーションプールの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のセキュリティを変更せずにこれを解決するにはどうすればよいですか?