我有一个WCF服务,它进一步调用另一个服务(在这种情况下,WCF然后调用SSRS Web服务。)我需要将客户端的凭据传递给WCF,然后有WCF使用这些凭据。
我正在尝试执行以下操作:
public ICredentials NetworkCredentials
{
get
{
if (String.IsNullOrEmpty(_username) && String.IsNullOrEmpty(_password) && String.IsNullOrEmpty(_domain))
return CredentialCache.DefaultNetworkCredentials;
return new NetworkCredential(_username, _password, _domain);
}
}
然后在SSRS Web服务上使用这些凭据:
public SSRS2010ReportServiceConnection(Server server, ICredentials credentials)
{
_server = server;
_service = new ReportingService2010
{
Url = server.ServerPath,
Credentials = credentials
};
}
但是,如果在IIS上托管默认设置,则CredentialCache.DefaultNetworkCredentials将返回主机服务器的凭据,而不是客户端。
如何以编程方式传递客户端凭据?