Exchange api 调用 ResolveName returns 多个项目

Exchange api call to ResolveName returns multiple items

我们正在使用交换 api 来获取项目,我们使用调用:

PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
service.ResolveName(userPhotoRequestModel.LoginId, ResolveNameSearchLocation.DirectoryOnly, true, psPropSet);

我们将 NTLogin 作为要搜索的值。我们发现,有时,我们得到的回报比 NameResolutionCollection 中的项目还多。您可能会认为,通过使用 NTLogin,我们将获得完全匹配并且集合中只有一项。但有时我们得到 2。有没有其他人见过这样的事情?

ResolveName 进行部分匹配,例如,如果我有两个用户 bsmith 和 bsmith1,并且我对 bsmith 执行了 resolveName,那么这两个条目都将被返回,因为它们都匹配正在解析的内容。

ResolveName 使用 ANR https://social.technet.microsoft.com/wiki/contents/articles/22653.active-directory-ambiguous-name-resolution.aspx 所以如果你想要完全匹配你需要做的就是在 NTLogin 前面加上 = eg

service.ResolveName("=mylogin", ResolveNameSearchLocation.DirectoryOnly, true, psPropSet);