Skip to main content
 首页 » 编程设计

c#之通过 'normal' url 打开 Excel 格式的 ssrs 报告,webrequest 返回 401

2024年01月25日28kuangbin

我想在代码中下载 Excel 格式的 ssrs 报告。

所以我首先检查了网址:它是正确的 然后我创建了一个 webrequest,为同一用户创建了一个 NetworkCredential,它可以在浏览器中打开链接。

我将开发转移到 ssrs 机器本身(它上面有 vs2008)

所以现在我在 ssrs 机器上,以用户 A 身份登录,启动网页,使用与我当前登录到 ssrs 机器(用户 A)相同的凭据创建一个 webrequest....并获得 401。

我不知道是什么给我 401。是网络服务器拒绝我,还是 ssrs 本身(我是 ssrs 的新手,所以我不太了解 ssrs 中报告的权利本身,但正如我所说:我的登录凭据与网络请求凭据相同:用户 A)。

我在谷歌上搜索了很多并尝试了 5 种解决方案,但到目前为止还没有成功。

请您参考如下方法:

如果需要 NTLM 凭据,这将不起作用:

webrequest.Credential = new networkcredential ("","",""); 

您可以尝试以下方法,但它可能不起作用:

webrequest.Credentials = CredentialCache.DefaultNetworkCredentials; 

您可能需要传递实际凭据,例如:

NetworkCredential networkCredential = new NetworkCredential(UserName, Password, Domain); 
CredentialCache credCache = new CredentialCache(); 
credCache.Add(new Uri(url), "NTLM", networkCredential); 
webrequest.Credentials = credCache; 

SSRS 将需要对 WebRequest 进行身份验证,并且不能传入默认/空白凭据。