【问题标题】:How to integrate a Power BI report into a UWP C# application如何将 Power BI 报表集成到 UWP C# 应用程序中
【发布时间】:2016-07-13 22:55:48
【问题描述】:

我正在开发一个 UWP 应用程序来向用户显示我创建的报告。但是,一旦我拥有报告的嵌入 URL,我似乎无法生成必要的安全令牌来验证报告。

我尝试将报告嵌入到 webview 中的 iFrame 中,以与 web 应用程序类似的样式显示它,但是,与 webview 相比,iFrame 不会加载公共报告。

任何示例似乎都使用 JwtSecurityToken,但这目前与 UWP 应用程序不兼容。

using System.IdentityModel.Tokens;

public string Generate(string accessKey = null)
{
    if (string.IsNullOrWhiteSpace(this.AccessKey) && accessKey == null)
    {
        throw new ArgumentNullException(nameof(accessKey));
    }

    accessKey = accessKey ?? this.AccessKey;

    var key = Encoding.UTF8.GetBytes(accessKey);
    var signingCredentials = new SigningCredentials(new InMemorySymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.Sha256Digest);
    var token = new JwtSecurityToken(this.Issuer, this.Audience, this.Claims, DateTime.UtcNow, this.Expiration, signingCredentials);

    return new JwtSecurityTokenHandler().WriteToken(token);
}

有没有办法绕过这个包而不使报告嵌入 URL 公开?或者也许是一种将其合并到应用程序中的方法?任何建议将不胜感激。

【问题讨论】:

  • “与可以加载的 webview 相比,iFrame 不加载公共报告”是什么意思?其实我可以在 WebView 中加载完成的报告,也许截图有助于理解你的问题
  • @FranklinChen-MSFT 如果我的 WebView 中有一个 iFrame(这样做是为了我可以使用 JavaScript PostMessage 函数),则无法加载公开可用的报告,而没有iFrame 可以。

标签: c# uwp jwt powerbi-embedded


【解决方案1】:

您可以使用包含 API 的 Microsoft.PowerBI.Core Nuget package 来生成您的报告嵌入令牌。这些令牌应在服务器上而不是在客户端代码中生成,因此您不会公开您的 Azure 访问密钥。

查看我们的sample on Github 了解更多信息。

var embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollection, workspaceId, reportId);

var jwt = embedToken.Generate(accessKey);

【讨论】:

  • 整个问题是这些与我的 UWP 应用程序不兼容
猜你喜欢
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
相关资源
最近更新 更多