我正在使用双电源嵌入式行级安全性。根据{{3}}提供的文档,我们需要在Power Bi桌面中添加角色,并使用DAX表达式,例如[ColumnName] = USERNAME()。这样,当用户具有特定角色时,此过滤器便可以使用。
我的问题是,是否有可能在任何地方使用DAX表达式直接使用用户名过滤数据?
预先感谢
答案 0 :(得分:3)
访问用户名
如果使用User owns data进行嵌入,则在进行身份验证时,可以在代码中访问用户名。 或者,即使使用App owns data,如果您在访问门户时对用户进行身份验证,那么在身份验证时也可以获取用户名。
以下是JS上的示例
oCommon.authContext.getCachedUser();
以下是C#中的示例
HttpContext.Current.User.Identity.Name;
在嵌入式报告中进行过滤
此外,通过使用filtering capabilities of Power BI embedding,可以根据身份验证期间获取的用户名值过滤报告。
避免闪烁
如果使用powerbi.embed(),则可以在报表嵌入后应用过滤器。 取而代之的是使用phased embedding的概念,在该概念甚至可以在报表呈现之前,就可以应用过滤器。因此,在load()之后和render()之前应用过滤器。这样可以避免在powerbi.embed()之后进行过滤时可能出现的闪烁。