PowerBI API GenerateTokensInGroupAsync- IsEffectiveIdentityRequired突然设置为true

问题描述

因此,我有一个利用Power BI api的mvc Web应用程序-该应用程序拥有数据。它已经运行了好几年,但是今天早晨突然在Generatetokens调用上中断了。错误为:“创建用于访问数据集xxxxxxx-xxx-xxxxxxx-xxxxxx的嵌入令牌需要提供有效的身份”。

这是原始代码:(直到今天早上工作正常)

foreach (Microsoft.PowerBI.Api.Models.Report report in reports.Value)
{
    var datasets = await client.Datasets.GetDatasetInGroupAsync(new Guid(GroupId),report.DatasetId);
    var generatetokenRequestParameters = new GeneratetokenRequest(accessLevel: "view");

    var tokenResponse = await client.Reports.GeneratetokenInGroupAsync(new Guid(GroupId),report.Id,generatetokenRequestParameters);  //error occurs here

    //more code here

数据集.EffectiveIdentityrequired = true。为了使旧代码正常工作,EffectiveIdentityrequired属性必须为false。无法在代码中进行设置。

因此,我们使用以下代码解决了该问题:

foreach (Microsoft.PowerBI.Api.Models.Report report in reports.Value)
{
    var datasets = await client.Datasets.GetDatasetInGroupAsync(new Guid(GroupId),report.DatasetId);

    var generatetokenRequestParameters = new GeneratetokenRequest();

    if (datasets.IsEffectiveIdentityrequired == true)
    {
        var role = credential.Role;
        var rls = new EffectiveIdentity(credential.UserName,new List<string> { report.DatasetId },new List<string> { role });
        generatetokenRequestParameters = new GeneratetokenRequest(accessLevel: "view",rls);
    }
    else
    {
        generatetokenRequestParameters = new GeneratetokenRequest(accessLevel: "view");
    }

    var tokenResponse = await client.Reports.GeneratetokenInGroupAsync(new Guid(GroupId),generatetokenRequestParameters);

所以问题是对数据集进行了哪些更改。EffectiveIdentityrequired= true?我们已经有6个月没有进行代码更改了,我们的Power BI人员说他们没有对报表/数据多维数据集/网关/ power bi角色进行任何更改。跨多个工作区,Web应用程序,数据多维数据集等的所有Power BI报表都发生了这种情况。一组通过Power BI网关在本地部署,另一组在Azure Analysis Server的云中。我没有找到文档说微软也改变了API。

有人有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)