1

名前や電子メールなどで連絡先を検索できるように、電子メールの連絡先を含むLDAPサーバーがあります。ただし、連絡先の最初の電子メールアドレスを検索して見つけるだけのようです。

たとえば、私に人がいる場合:

LastName: Doe
FirstName: John
Email: jdoe@work.com
Email2: johndoe@home.com
Email3: johndoe@fun.com

最初のメールを検索または返すだけです。たとえば、「John」を検索すると、他の2つのメールアドレスに「john」が含まれていても、「jdoe@work.com」のみが返されます。私が試した検索フィルターは次のとおりです。

//This one will both look through and match the first email but ignores the 2nd/3rd
(|(displayName=*%v*)(mail=*%v*)(uid=*%v*)(givenname=*%v*)(sn=*%v*)(cn=*%v*))

//This one throws an error saying "mail2" and "mail3" are invalid filters.
(|(displayName=*%v*)(mail=*%v*)(mail2=*%v*)(mail3=*%v*)(uid=*%v*)(givenname=*%v*)(sn=*%v*)(cn=*%v*))

何を使うべきですか?

また、LDAPユーザー検索に配置できるすべての可能なフィルターを一覧表示するページへのリンクを誰かが持っていますか?

4

3 に答える 3

1

Exchange は、mail2 や mail3 などのフィールドに追加のメールアドレスを保存しません。すべてのアドレスは、多値フィールド「proxyAddresses」に格納されます。このフィールドには、次の形式で住所ごとに 1 行が含まれます。

アドレスタイプ:アドレス

例:

smtp:test@contoso.local SMTP:user@contoso.local

この例の 2 番目のエントリは、SMTP プレフィックスがすべて大文字であるため、そのアカウントのメイン アドレスになります。

したがって、 (proxyAddress= %v ) などを検索します。LDAP 検索構文が頭から離れていません。

編集: 別のオプションは、EWS Web サービスの ResolveNames 操作を使用することです ( http://www.infinitec.de/post/2009/04/13/Resolving-the-primary-email-address-with-Exchange-WebServices-を参照)。 ResolveNames-operation.aspxおよびhttp://msdn.microsoft.com/en-us/library/aa563518(v=exchg.140).aspx )。

于 2011-08-09T21:05:29.593 に答える
1

フィルター:

(|(displayName=*%v*)(mail=*%v*)(uid=*%v*)(givenname=*%v*)(sn=*%v*)(cn=*%v*))

エントリと一致しません:

LastName: Doe
FirstName: John
Email: jdoe@work.com
Email2: johndoe@home.com
Email3: johndoe@fun.com

指定されたエントリのどの属性名とも一致するフィルタ アサーションがないためです。

(|(Email=jd*)(Email2=john*)(Email3=john*)(lastName=Do*))

一致します。与えられたエントリの例に標準名を使用することを検討しましたか?

于 2011-08-10T09:37:27.150 に答える