gpt4 book ai didi

c# - 操作返回无效状态代码 'Unauthorized' '

转载 作者:行者123 更新时间:2023-12-02 00:37:05 29 4
gpt4 key购买 nike

我正在尝试按照示例项目和来自 here 的教程将示例 Power BI 仪表板嵌入到 WPF 应用程序中.当我启动该应用程序时,我必须输入我的密码来验证我自己,当它尝试使用 getAppWorkspacesList() 获取我的 Power BI 工作区列表时,我收到此错误消息

Microsoft.Rest.HttpOperationException: 'Operation returned an invalid status code 'Unauthorized''

有人可以帮忙指出为什么会出现这个错误吗?我试图查看错误的详细信息,但我不明白是什么导致了这个问题。我能够毫无问题地将仪表板嵌入 .Net Web App,所以我认为问题不在我的 Power BI 或 Azure Directory 帐户中。

enter image description here

private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
Uri redirectUri = new Uri(ConfigurationManager.AppSettings["ida:RedirectUri"]);
private static string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);

private static string graphResourceId = ConfigurationManager.AppSettings["ida:ResourceId"];
private AuthenticationContext authContext = null;

TokenCredentials tokenCredentials = null;
string Token = null;
string ApiUrl = "https://api.powerbi.com";



public MainWindow()
{
InitializeComponent();
TokenCache TC = new TokenCache();
authContext = new AuthenticationContext(authority, TC);
}


private void getAppWorkspacesList()
{
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
appWorkSpacesList.ItemsSource = client.Groups.GetGroups().Value.Select(g => new workSpaceList(g.Name, g.Id));
}
}

最佳答案

根据您的描述,我假设您使用的是 Power BI 用户访问 token (用户拥有数据)方法。我建议您使用 https://jwt.io/在成功调用 authContext.AcquireTokenAsync 后解码 access_token。确保 audhttps://analysis.windows.net/powerbi/api 并检查权限范围属性 scp

对于 Get Groups ,所需范围如下所示:

Required scope: Group.Read.All or Group.ReadWrite.All or Workspace.Read.All or Workspace.ReadWrite.All

您还可以使用 fiddler 或 postman 来模拟针对 get groups 端点的请求以及在您的 WPF 应用程序中收到的 access_token 以缩小此问题的范围。

此外,您可以关注Register an application检查您的 Azure AD 应用并确保已正确配置对 Power BI 服务 (Microsoft.Azure.AnalysisServices) API 所需的委派权限。

关于c# - 操作返回无效状态代码 'Unauthorized' ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49037233/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com