【发布时间】: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