0

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

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

urlText 是 Web 服务 url 的文本字段

        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 有关。就像现在一样,通过网络界面不会提示输入凭据(我不知道这是否重要,只是更多信息)。

这是认证部分

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

0 回答 0