如何在 Power BI C# SDK 中传递过滤参数
How to pass filtering parameters in PoweBI C# SDK
我正在使用 C# SDK 生成 Power BI 嵌入令牌。
using (var client = new PowerBIClient(new Uri(apiUrl), tokenCredentials))
{
var workspaceId = groupId.ToString();
var report = await client.Reports.GetReportInGroupAsync(workspaceId, reportId);
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
var tokenResponsex = await client.Reports.GenerateTokenAsync(workspaceId, reportId, generateTokenRequestParameters);
result.EmbedToken = tokenResponsex;
result.EmbedUrl = report.EmbedUrl;
result.Id = report.Id;
}
我需要传递一个参数进行过滤。但是找不到一种直接的方法来做到这一点。
我该如何完成?
通过传递 EffectiveIdentity information when generating access token for this report with GenerateTokenInGroup.
,您可以在使用应用拥有数据方案(用于身份验证的单个主帐户)实现的嵌入式报告中使用 RLS
要在报告本身中实施 RLS,您需要 use USERPRINCIPALNAME()
DAX function to filter the data, or define roles 并根据它们过滤数据。如果您使用角色实现它,在发布报告后转到数据集的安全设置并将用户添加到角色。
要通过提供有效的身份和角色成员资格来生成令牌,请使用如下代码:
var credentials = new TokenCredentials(accessToken, "Bearer");
using (var client = new PowerBIClient(new Uri("https://api.powerbi.com"), credentials))
{
var datasets = new List<string>() { datasetId }; // Dataset's GUID as a string
var roles = new List<string>();
roles.Add('ROLE1');
roles.Add('ROLE2');
roles.Add('ROLE3');
var effectiveIdentity = new EffectiveIdentity('user@example.com', datasets, roles);
var r = new GenerateTokenRequest("view", effectiveIdentity);
var token = client.Reports.GenerateTokenInGroup(groupId, reportId, r).Token;
}
我正在使用 C# SDK 生成 Power BI 嵌入令牌。
using (var client = new PowerBIClient(new Uri(apiUrl), tokenCredentials))
{
var workspaceId = groupId.ToString();
var report = await client.Reports.GetReportInGroupAsync(workspaceId, reportId);
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
var tokenResponsex = await client.Reports.GenerateTokenAsync(workspaceId, reportId, generateTokenRequestParameters);
result.EmbedToken = tokenResponsex;
result.EmbedUrl = report.EmbedUrl;
result.Id = report.Id;
}
我需要传递一个参数进行过滤。但是找不到一种直接的方法来做到这一点。 我该如何完成?
通过传递 EffectiveIdentity information when generating access token for this report with GenerateTokenInGroup.
,您可以在使用应用拥有数据方案(用于身份验证的单个主帐户)实现的嵌入式报告中使用 RLS要在报告本身中实施 RLS,您需要 use USERPRINCIPALNAME()
DAX function to filter the data, or define roles 并根据它们过滤数据。如果您使用角色实现它,在发布报告后转到数据集的安全设置并将用户添加到角色。
要通过提供有效的身份和角色成员资格来生成令牌,请使用如下代码:
var credentials = new TokenCredentials(accessToken, "Bearer");
using (var client = new PowerBIClient(new Uri("https://api.powerbi.com"), credentials))
{
var datasets = new List<string>() { datasetId }; // Dataset's GUID as a string
var roles = new List<string>();
roles.Add('ROLE1');
roles.Add('ROLE2');
roles.Add('ROLE3');
var effectiveIdentity = new EffectiveIdentity('user@example.com', datasets, roles);
var r = new GenerateTokenRequest("view", effectiveIdentity);
var token = client.Reports.GenerateTokenInGroup(groupId, reportId, r).Token;
}