我在本地安装了SSRS 2017。我试图在VS2015中使用自动生成的SOAP客户端调用Web服务(可能已过时,但我别无选择):
var cl = new ReportingService2010SoapClient();
cl.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
CatalogItem[] catalogItems;
var res = cl.ListChildren(new TrustedUserHeader {}, "/", false, out catalogItems);
结果如下:
发生System.ServiceModel.Security.MessageSecurityException
HResult = -2146233087 Message = HTTP请求未经授权 客户端身份验证方案'匿名'。身份验证标头 从服务器收到的是'NTLM'。源= mscorlib程序
我知道我的身份验证尝试不完整,但我正在阅读文档和示例一段时间没有结果。
相关文档:
更新:另外,我想避免弄乱用户名/密码,并希望重新使用Windows机制。
答案 0 :(得分:0)
您是第一次配置WCF客户端吗?使用Microsoft服务配置编辑器(在VS:工具> WCF服务配置编辑器中)!
使用工具很容易:
<basicHttpBinding>
<binding name="ReportingService2010Soap">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
</basicHttpBinding>