如何验证报表服务器Web服务?

时间:2018-02-09 22:26:03

标签: c# .net authentication soap reporting-services

我在本地安装了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机制。

1 个答案:

答案 0 :(得分:0)

您是第一次配置WCF客户端吗?使用Microsoft服务配置编辑器(在VS:工具> WCF服务配置编辑器中)!

使用工具很容易:

<basicHttpBinding>
    <binding name="ReportingService2010Soap">
        <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Ntlm" />
        </security>
    </binding>
</basicHttpBinding>