为SQL Server Reporting Service(SSRS)Web服务提供域凭据?

时间:2013-10-03 20:56:01

标签: c# web-services reporting-services unauthorized

我正在尝试提供特定的域凭据来访问我的报告服务器上的报告。如果我使用默认凭据(不提供实际信用),它可以正常工作,因为我可以访问我的报表服务器。只要我对我的凭据进行硬编码(并禁用默认凭据),它就会给我401异常(请求失败,HTTP状态为401:未经授权。)

comboBox1是一个组合框(显然),每个服务器都可用

urlText是网络服务网址的文本字段

        comboBox1.Items.Clear();

        var rs = new ReportingService2005
        {
            Url = urlText.Text,
            //any of those three work
            //Credentials = System.Net.CredentialCache.DefaultCredentials,
            //Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
            UseDefaultCredentials = true

            //This doesn't work
            //Credentials = new NetworkCredential("user", "pass", "domain")
        };

        // get catalog items from the report server database
        var items = rs.ListChildren("/", true);  <------exception on this line---------

        foreach (var item in items)
        {
            if (item.Type == ItemTypeEnum.Report)
                comboBox1.Items.Add(item.Path);
        }

据我所知,这应该是所有需要的。它可能与rsreportserver.config有关。就像现在一样,通过Web界面不会提示输入凭据(我不知道这是否重要,只是更多信息)。

以下是身份验证部分

<Authentication>
    <AuthenticationTypes>
        <RSWindowsNegotiate/>
    </AuthenticationTypes>
    <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
    <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
    <EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>

0 个答案:

没有答案