2016-07-01 1 views
0

Я разрабатываю приложение UWP для отображения отчетов, которые я создал для пользователя. Однако я не могу представить необходимый токен безопасности для аутентификации отчета после того, как у меня есть его URL для встраивания.Как интегрировать отчет Power BI в приложение UWP C#

Я попытался включить отчет в iFrame в веб-браузере, чтобы отобразить его в подобном стиле для веб-приложения, однако 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 общедоступным? Или, возможно, способ включить его в приложение? Любые предложения будут оценены.

+0

Что вы подразумеваете под "iFrame не загружает публичный отчет по сравнению с веб-просмотром, который может"? На самом деле я могу загрузить завершенный отчет в WebView, может быть, скриншот полезен для понимания вашей проблемы. –

+0

@ FranklinChen-MSFT, если у меня есть iFrame в моем WebView (что было сделано, чтобы я мог использовать функцию JavaScript PostMessage), тогда это невозможно для загрузки общедоступного отчета, тогда как WebView без iFrame может. – sparksy64

ответ

0

Вы можете использовать Microsoft.PowerBI.CoreNuget package, который содержит API-интерфейсы для генерации ваших токенов для вставки отчетов. Эти токены должны быть сгенерированы на сервере, а не в клиентском коде, чтобы вы не открывали свой ключ доступа к Azure.

Посмотрите наш sample on Github для получения дополнительной информации.

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

var jwt = embedToken.Generate(accessKey); 
+0

Все дело в том, что они не совместимы с моим приложением UWP – sparksy64

 Смежные вопросы

  • Нет связанных вопросов^_^