Web 服务身份验证

可以使用 Windows 身份验证或基本身份验证对针对报表服务器 Web 服务进行的调用进行身份验证。 对报表服务器发出 SOAP 请求的任何客户端都必须实现其中一种支持的身份验证协议的客户端部分。 如果使用的是 Microsoft .NET Framework,则可以使用托管代码 HTTP 类来实现身份验证。 通过使用这些 API,可以轻松地随 SOAP 请求一起发送身份验证信息。

如果在对报表服务器 Web 服务进行调用之前不具备适当的凭据,则调用将失败。 在运行时,可以通过在调用 Web 服务的方法之前设置表示该 Web 服务的客户端对象的“Credentials”属性,向该 Web 服务传递凭据。

以下各节包含使用 .NET Framework 发送凭据的示例代码。

Windows 身份验证

以下代码将 Windows 凭据传递到 Web 服务。

Dim rs As New ReportingService()  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
ReportingService rs = new ReportingService();  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

基本身份验证

以下代码将基本身份验证凭据传递到 Web 服务。

Dim rs As New ReportingService()  
rs.Credentials = New System.Net.NetworkCredential("username", "password", "domain")  
ReportingService service = new ReportingService();  
service.Credentials = new System.Net.NetworkCredential("username", "password", "domain");  

必须在调用报表服务器 Web 服务的任何方法之前设置凭据。 如果您没有设置凭据,将收到错误代码“HTTP 401 错误: 拒绝访问”。 必须在使用服务之前对其进行身份验证,但在设置凭据之后,只要你继续使用同一个服务变量(如 rs),就不需要再次设置这些凭据。

自定义身份验证

Reporting Services 包含一个编程 API,它向开发人员提供了设计和开发自定义身份验证扩展插件(称为安全扩展插件)的机会。 有关详细信息,请参阅 Implementing a Security Extension