我想在代码中下载 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 进行身份验证,并且不能传入默认/空白凭据。
关于c# - 通过 'normal' url 打开 Excel 格式的 ssrs 报告,webrequest 返回 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336976/