LinqToLdap を使用しています。1 つの NamingContext 内からユーザーを検索することに成功しました (つまり、これは AD 内の特定の OU です)。私がやりたいことは、別の NamingContext を追加して、それらの両方を一度に照会できるようにすることです。
どうすればこれを達成できるか知っていますか?
私は次のことを行いましたが、成功しませんでした.常に最初のマッピングに対して検索します.
var config = new LdapConfiguration();
config.AddMapping(new UserMap1(), "namingContext1 - OU etc etc");
config.AddMapping(new UserMap2(), "namingContext2 - OU etc etc");
public class UserMap1: ClassMap<User>
public class UserMap2: ClassMap<User>
私のクエリは次のとおりです-
using (var context = new LinqToLdap.DirectoryContext(conn, true, config))
{
var query =
context.Query<User>()
.Where(x => searchTextAsArray.Contains(x.GivenName) || searchTextAsArray.Contains(x.Sn))
.Select(u => new
{
u.GivenName,
u.Sn,
u.DistinguishedName,
u.Cn,
u.UserPrincipalName,
Score = (searchTextAsArray.Contains(u.GivenName) ? 1 : 0) + (searchTextAsArray.Contains(u.Sn) ? 1 : 0)
}).ToList();
var results = query.OrderByDescending(u => u.Score).ThenBy(u => u.Sn).ThenBy(u => u.GivenName);
foreach (var result in results)
{
Console.WriteLine("{0} {1} - {2}",
result.GivenName,
result.Sn,
result.Score);
}
}
最初のマッピングのみが考慮されます...
どんな助けでも素晴らしいでしょう。