Microsoft Exchange:如何解析一个杰出的名称

时间:2013-06-18 11:48:51

标签: c# active-directory exchange-server distinguishedname

我该如何解决这个问题:

/O=CHEESE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=LHALA1

到电子邮件地址?我是否必须使用Exchange Web服务?

2 个答案:

答案 0 :(得分:1)

我假设这是legacyExchangeDN属性。

尝试这样的事情:

string dn = "/O=CHEESE/OU=FIRST ADMINISTRATIVE GROUP/" +
        "CN=RECIPIENTS/CN=LHALA1";
string MailAddress=string.Empty;
string user = string.Empty;

using (DirectorySearcher ds = new DirectorySearcher())
{
    ds.Filter = string.Format("(&(ObjectClass=User)(legacyExchangeDN={0}))", 
            dn);
    SearchResultCollection src = ds.FindAll();
    if (src.Count > 1)
    {
        //Oops too many!
    }
    else
    {
        user = src[0].Properties["samAccountName"][0].ToString();
        MailAddress = src[0].Properties["Mail"][0].ToString();
    }
}

答案 1 :(得分:0)

如果您可以对目录进行LDAP搜索,则可以检索该用户的条目,然后默认电子邮件地址将位于mail:attribute

如果它是启用邮箱的Exchange用户,则在proxyAddresses:属性,联系人或非邮箱已启用邮件的用户中也会有地址,targetAddress中将存在远程地址:属性