【发布时间】:2018-08-08 10:19:43
【问题描述】:
我正在尝试将托管在 PowerBI 报表服务器上的报表嵌入到 WebBrowser 控件中。
我使用以下形式的网址:
reportserver.server.com/reports/powerbi/TestReport?rs:embed=true
("Capturing the URL parameter" section)
这可行,但会提示 Active Directory 身份验证,
通过浏览器:
在我的应用程序中:
如果我输入凭据,一切正常。但是,我想以编程方式进行身份验证。
在网址中包含凭据,如下所示:user:password@reportserver.server.com/reports/powerbi/TestReport?rs:embed=true
在浏览器中工作,但会显示一个确认对话框:
但是,在应用程序的 WebBrowser 中,它没有,而是显示如下:
此页面会立即加载。链接是https://go.microsoft.com/fwlink/?linkid=847142(“配置报表服务器数据库连接(SSRS 配置管理器)”)。我认为这篇文章不相关。
有没有一种方法可以在不禁用报表服务器上的身份验证的情况下以编程方式进行身份验证?
我的代码很简单:
var url = new Uri(@"user:password@reportserver.server.com/reports/powerbi/TestReport?rs:embed=true");
webBrowser1.Navigate(url);
尝试在标题中传递凭据会导致空白页面,并且似乎什么也没发生:
var url = new Uri(@"reportserver.server.com/reports/powerbi/TestReport?rs:embed=true");
string auth = System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(username + ":" + password));
string headers = "Authorization: Basic " + auth + "\r\n";
webBrowser1.Navigate(url, "", null, headers);
【问题讨论】:
标签: .net authentication reporting-services webbrowser-control powerbi