동일한 컴퓨터에서 IIS에 2 개의 wcf 서비스가 모두 호스팅되어 있습니다. 서비스 A는 클라이언트에 의해 호출되며 전송 보안이있는 BasicHttpBinding
과 NTLM credentialtype
을 사용합니다. 서비스 A는 IIS에서 호스팅되는 서비스 B를 호출해야하지만 전송 보안이있는 WsHttpBinding
과 NTLM credentialtype
을 사용합니다.하나의 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에서 전화 사용되는 응용 프로그램 풀의 신원을 할 때 때문 정상입니다.
두 번째 시도에서 서비스 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 변경하지 않고이 문제를 해결 수 있을까?