c#-如何使用LINQ使用Azure AD Graph API客户端库2.0查找具有特定许可证的Azure AD用户
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-如何使用LINQ使用Azure AD Graph API客户端库2.0查找具有特定许可证的Azure AD用户,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2059字,纯文字阅读大概需要3分钟。
内容图文
![c#-如何使用LINQ使用Azure AD Graph API客户端库2.0查找具有特定许可证的Azure AD用户](/upload/InfoBanner/zyjiaocheng/661/7c08f428cd4b40c1ae89f77c53cbd0ef.jpg)
我从工作的sample .NET Graph API Console app开始.我希望能够查询具有特定许可证的所有用户的Azure AD.我想我必须做某种嵌套的LINQ查询.
这是我的第一次尝试
IUserCollection userCollection = activeDirectoryClient.Users;
searchResults = userCollection.Where(user =>
user.AssignedPlans.Where(plans => plans.Service.Contains("exchange")) &&
user.DisplayName.StartsWith(searchString)).ExecuteAsync().Result;
usersList = searchResults.CurrentPage.ToList();
我收到一个错误消息,提示“错误3运算符’&’”不能应用于类型为’System.Collections.Generic.IEnumerable’和’bool’的操作数
我尝试将.Where更改为.Any并进行编译.
searchResults = userCollection.Where(user =>
user.AssignedPlans.Any(plans => plans.Service.Contains("exchange")) &&
user.DisplayName.StartsWith(searchString)).ExecuteAsync().Result;
但是当我运行代码时,我在控制台中收到此错误.
Error getting User Expression of type 'System.Collections.Generic.IList`1[Microsoft.Azure.ActiveDirectory.GraphClient.Internal.AssignedPlan]' cannot be used for
parameter of type 'System.Collections.Generic.IEnumerable`1[Microsoft.Azure.ActiveDirectory.GraphClient.AssignedPlan]' of method 'Boolean Any[AssignedPlan](Sys
tem.Collections.Generic.IEnumerable`1[Microsoft.Azure.ActiveDirectory.GraphClient.AssignedPlan], System.Func`2[Microsoft.Azure.ActiveDirectory.GraphClient.Assig
nedPlan,System.Boolean])'
用户可以有许多分配的计划.我需要返回所有至少具有一个已分配计划的用户,并且其服务等于“交换”
解决方法:
这里发生了几件事情-恐怕我没有适合您的答案.首先,我们的客户端库不支持您尝试的那种构造,但是我相信我们会尽快修复它.更大的问题是我们的服务端不支持查询多值复杂类型(在这种情况下为AssignedPlan).我将对此商品提出功能要求.
目前,我们唯一可用的解决方法是,您尝试使用我们今天支持的内容(请参见http://blogs.msdn.com/b/aadgraphteam/archive/2014/02/11/support-for-disjunctive-or-filter-clauses-in-the-graph-directory-service.aspx或通过客户端库进行的等效操作)筛选结果集,然后执行客户端筛选.不理想…
我们认为可能会有帮助的另一件事是,如果我们提供了Any(*)过滤器,该过滤器允许您对设置的属性进行过滤.这样,您可以筛选出分配了Plans的那些用户,然后从那里去.
让我知道你的想法
内容总结
以上是互联网集市为您收集整理的c#-如何使用LINQ使用Azure AD Graph API客户端库2.0查找具有特定许可证的Azure AD用户全部内容,希望文章能够帮你解决c#-如何使用LINQ使用Azure AD Graph API客户端库2.0查找具有特定许可证的Azure AD用户所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。