Передать учетные данные из одной службы wcf в другую службу wcf

У меня есть 2 службы wcf, которые размещены на IIS на одной машине. Служба A вызывается клиентом и использует BasicHttpBinding с транспортной безопасностью и NTLM credentialtype, Служба A должна вызывать службу B, которая также размещена на IIS, но использует WsHttpBinding с транспортной безопасностью и 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, используется идентификатор пула приложений.

Во второй попытке я попытался выдать себя за вызов службы 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 или удостоверения пула приложений?

1 ответ

Другие вопросы по тегам