【发布时间】:2020-03-21 14:50:09
【问题描述】:
尝试使用 Microsoft Graph API 来处理在我们的 MS 云中查找数据 - 我被困住了。有这么多的文档 - 但从来没有正确的....
我正在尝试使用 C# Graphi 客户端 SDK,我正在尝试读取给定用户的详细信息,包括其 AD 组成员身份。
我已经在 Azure AD 中注册了我的应用程序,我能够启动并运行 IPublicClientApplication 并且身份验证也可以工作:
IPublicClientApplication app = PublicClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantId)
.Build();
UsernamePasswordProvider authProvider = new UsernamePasswordProvider(app, scopes);
// creating Graph SDK client
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
string userName = "......";
var securePassword = new SecureString();
// filling secure password here.....
var users = graphClient.Users
.Request()
.WithUsernamePassword(userName, securePassword)
.Filter("userPrincipalName eq 'someone@myorg.com'")
.GetAsync().Result;
这行得通——我确实得到了过滤器中指定的用户的基本用户详细信息。
两件事:
我不喜欢在每次调用客户端时都必须添加
.WithUsernamePassword的事实 - 没有办法将这些信息包含在graphClient一次 并完成它,直到我退出?我正在尝试获取组成员资格。我可以在 Graph Explorer 中通过将
/MemberOf添加到我的查询字符串来执行此操作 - 但我无法让它在 Graph SDK 客户端场景中工作。
我看到很多博客展示了如何使用
获取当前登录用户的组graphClient.Me.MemberOf.Request().GetAsync();
但我不想要 我的 组成员 - 我想要我在搜索过滤器中指定的用户的成员,如上所示。
尝试简单地添加 .Expand("memberOf") 似乎没有帮助 - 返回的用户对象在其 MemberOf 属性中仍然没有值。
我错过了什么?我不敢相信这会如此棘手和困难??还是我真的需要求助于对 REST API 发出 HTTP GET 请求?如果 MS 提供 SDK 和客户端代码,这似乎很奇怪.....坦率地说,我更喜欢使用它。
【问题讨论】:
标签: c# microsoft-graph-sdks group-membership