【问题标题】:Handling authentication when embedding PowerBI Report Server reports嵌入 PowerBI 报表服务器报表时处理身份验证
【发布时间】: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


    【解决方案1】:

    发现了一个丑陋的解决方法,发布以防其他人发现这很有用,但不会接受这个作为答案,因为仍然更喜欢“干净”的解决方案。

    如果你先导航到带有凭据的 url,然后再导航到没有凭据的 url,它就可以工作:

    private string justUrl { get { return urlPrefix + url; } }
    private string urlWithCreds { get { return urlPrefix + username + ":" + password + "@" + url ; } }
    private void button1_Click(object sender, EventArgs e)
    {
        var url1 = new Uri(urlWithCreds);
        webBrowser1.Navigated += WebBrowser1_Navigated; // one-time
        webBrowser1.Navigate(url1);
    }
    private void WebBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        webBrowser1.Navigated -= WebBrowser1_Navigated;
        webBrowser1.Navigate(justUrl);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多