Microsoft Exchange Services - 如何使用Resolve进行精确匹配

时间:2014-03-21 15:28:34

标签: c# exchangewebservices

以下是与Microsoft Exchange集成相关的问题。 我正在调用Microsoft Exchange服务方法ResolveName (string)

我传递的是用户名,例如myusername,我收到两个匹配项 - 与用户名myusername匹配,另一个与myusername2匹配。 现在的问题是:是否有可能进行仅返回直接匹配的调用,以便仅返回与确切用户名匹配的内容?

以下是代码: :

var service = Service.GetService();

                username = Regex.Replace(username, ".*\\\\(.*)", "$1", RegexOptions.None);

                var resolvedNames = service.ResolveName(username);

                foreach (var resolvedName in resolvedNames)
                {
                    mailboxname = resolvedName.Mailbox.Address;
                }

2 个答案:

答案 0 :(得分:0)

该方法实际上解析了电子邮件地址,因此要完全匹配,您需要执行类似的操作。

string username = "myUserName";
string domain = "myDomain.com";
string emailAddress = username + "@" + domain;
NameResolutionCollection resolvedContactList = _service.ResolveName(emailAddress);

答案 1 :(得分:0)

如果你不能在myusername之外指定'用户名'(因为Amicable的答案假设你可以做),那么唯一要做的就是在再次匹配的ResolveName周围写一个包装器针对您的搜索字符串的所有结果,这次需要完全匹配。

为此,您必须再次解析域名,因为您获得了.Mailbox.Address中返回的完整主SMTP电子邮件地址。

我在Delphi代码中做的完全相同; - )