2016-07-01 3 views
0

사용자에게 작성한 보고서를 표시 할 UWP 응용 프로그램을 개발 중입니다. 그러나 URL을 포함 시키면 보고서를 인증하는 데 필요한 보안 토큰을 생성 할 수 없습니다.Power BI 보고서를 UWP C# 응용 프로그램에 통합하는 방법

웹 응용 프로그램과 비슷한 스타일로 보고서를 표시하기 위해 웹보고 내의 iFrame에 보고서를 포함 시키려고 시도했지만 iFrame은 webview와 비교하여 공용 보고서를로드하지 않습니다.

모든 예제는 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와 비교하여 공개 보고서를로드하지 않는다"는 것은 무엇을 의미합니까? 사실 WebView에서 완성 된 보고서를로드 할 수 있습니다. 아마도 캡쳐 화면이 문제를 이해하는 데 도움이 될 것입니다. –

+0

@ FranklinChen-MSFT (JavaScript PostMessage 함수를 사용할 수 있도록 완료된) WebView 내에 iFrame이있는 경우 MSFT 공개적으로 사용 가능한 보고서를로드하는 반면 iFrame이없는 WebView는로드 할 수 있습니다. – sparksy64

답변

0

API가 포함 된 Microsoft.PowerBI.CoreNuget package을 사용하여 보고서 포함 토큰을 생성 할 수 있습니다. 이 토큰은 Azure 액세스 키를 노출시키지 않도록 클라이언트 코드가 아닌 서버에서 생성되어야합니다.

자세한 내용은 sample on Github을 참조하십시오.

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

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

전체적인 문제는 이것들이 내 UWP 앱과 호환되지 않는다는 것입니다. – sparksy64

관련 문제