【发布时间】:2018-06-26 04:02:23
【问题描述】:
我正在尝试(像许多其他人一样)为我的应用程序的用户获取组成员资格。 我一直遇到以下代码行的阻塞点:
IPagedCollection<IGroup> pagedCollection = await client.Groups.ExecuteAsync();
.. 引发(“未授权”)异常。 虽然我知道错误在说什么,但我不确定它为什么这么说。 我已授予我的应用程序在 Graph API 下的每一项权限(39 个应用程序权限和 88 个委派权限 - 我现在只是原型设计)。
我也已经“管理员同意”,因为我已经完成了登录过程并“接受”了它告诉我它将使用的很长的权限列表,然后继续带我回到我的应用程序,然后上面的代码行失败。
作为参考,我一直在关注 Azure 文档站点上的“TodoListWebApp”演示代码,虽然我可以使用 AD 身份验证成功登录应用程序,但我对 HomeController Index 操作的修改以获取列表(作为测试)似乎是我的失败。
这是我目前使用的;
ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient();
IPagedCollection<IGroup> pagedCollection = await client.Groups.ExecuteAsync();
do
{
List<IGroup> directoryGroups = pagedCollection.CurrentPage.ToList();
foreach (IGroup directoryGroup in directoryGroups)
{
roleList.Add((Group)directoryGroup);
}
pagedCollection = await pagedCollection.GetNextPageAsync();
}
while (pagedCollection != null);
我也尝试过关注这个预先存在的问题; Get a list of groups that Azure AD user belongs to in claims
我已经如前所述修改了应用程序清单,并尝试使用 Jonas 发布的 GetGroupMembershipsByObjectId 方法。
这只会导致异常消息“发生一个或多个错误”。 所以我很好,真的被困住了。
任何帮助都会很棒
编辑:
一些修改 - 我意识到发布的代码不准确,因为它引用了角色而不是组,所以我已经更新了。
第二次编辑,是我已经确定了这个助手的异常来源;
令牌从未设置,因此出现错误,但我在源代码中看不到它应该设置的位置?如果有人能指出我的方向。
【问题讨论】:
-
AuthenticationHelper.cs 链接不起作用。
标签: c# asp.net azure model-view-controller active-directory