使用Microsoft.Azure.ActiveDirectory.GraphClient 2.1.1进行组查找

时间:2017-09-23 05:17:52

标签: active-directory azure-ad-graph-api

问题

我在MailNickname查找群组时遇到空引用异常。请注意,有问题的昵称在Active Directory中不存在,但是,我希望该库能够优雅地处理它,而不会导致空引用异常。

值得注意的是,我能够使用相同的代码查找Active Directory中存在的组。我不控制我的代码操作的昵称,因为他们是用户输入的。我只想查询群组的信息,或者在群组不存在的情况下继续前进。

代码

// Using nuget package Microsoft.Azure.ActiveDirectory.GraphClient 2.1.1
//
await graphClient.Groups
    .Where( g => g.MailNickname == "FakeGroupNickname" )
    .ExecuteSingleAsync();

异常

System.NullReferenceException: Object reference not set to an instance of an object.
  at Microsoft.Azure.ActiveDirectory.GraphClient.Extensions.ReadOnlyQueryableSet2.<<ExecuteSingleAsync>b__5>d__7.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
  at Program.GroupMembershipHandler.<GetGroupIds>d__17.MoveNext()

问题

是否有另一种使用图形客户端库按MailNickname查询组的方法,当组不存在时不会导致空引用异常?

除此之外,我很想知道在这个库中提交错误的位置。在我看来,永远不应该抛出空引用异常。

1 个答案:

答案 0 :(得分:0)

  
    

是否有另一种使用图形客户端库通过MailNickname查询组的方法,当该组不存在时不会导致空引用异常?

  

AFAIK,目前我们应该使用try catch语句来处理空引用异常并发送错误消息,如&#34; MailNickname不存在&#34;给用户。或者您需要过滤返回的结果(组集合)。任何反馈,您都可以发布到Azure AD Feedback Forum