我在asp.net mvc应用程序中嵌入了power bi报告。它工作正常,正在显示数据。我遇到一个问题,在我的应用程序中,每个客户都有几个分支机构,例如城市。该客户端的每个用户都可以访问所有或某些分支,并且基于该访问,当该用户登录系统时,我们将显示数据。
我希望在Power Bi中实现相同的功能,即当用户登录系统并查看报告时,它应该显示他/她有权访问的分支的数据。我找到了一个解决方案[Can I pass a dynamic query parameter to an embedded Power BI report in ASP.Net MVC?,我们可以在程序端设置过滤器值。我在自己的视图中应用了此方法,但仍在获取所有数据。
const branchFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "tblWorkhistory",
column: "BranchID"
},
operator: "In",
values: [1],
filterType: models.FilterType.BasicFilter
}
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
viewMode: models.ViewMode.View,
filters: [branchFilter],
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
这里,我想在其中应用过滤器的地方,它将仅显示id为1的分支的数据,但它显示的是所有数据。我在这里想念什么吗?在此代码之后我还需要做任何报告方面的事情吗?
关于,沙湾
要显示基于登录到您的应用程序的用户的数据,您必须先在Power Bi报告中应用Row Level Security(RLS),然后按照以下文章https://docs.microsoft.com/en-us/power-bi/developer/embedded-row-level-security的步骤进行操作>