将凭证从一个wcf服务传递到另一个wcf服务

时间:2012-08-23 17:58:14

标签: wcf-security impersonation

我在同一台机器上的IIS上托管了2个wcf服务。 服务A由客户端调用,并使用BasicHttpBinding和传输安全性NTLM credentialtype。 服务A需要调用服务B,服务B也托管在IIS上,但使用带有传输安全性WsHttpBinding的{​​{1}}。

IIS配置为使用集成的Windows身份验证。

我第一次尝试 403禁止消息

NTLM credentialtype

这是正常的,因为当我从服务A拨打服务B到服务B时,​​会使用应用程序池的标识。

在我的第二次尝试中,我尝试模拟对服务B的调用,但问题是操作中的所有代码都在调用者帐户下执行。此帐户在服务器上没有ACL权限,并且不提供这些权限。 记录以下错误:

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.

如何在不改变ACL或应用程序池标识的安全性的情况下解决这个问题?