0

我正在使用LinqToLdap并尝试使用 LinqToLdap 提供的示例从我们的 AD 中查找所有用户。但没有成功。首先我尝试修改模型以更好地适应我们的广告

[DirectorySchema("DC=corp,DC=intern", ObjectClass = "User")]
public class User : DirectoryObjectBase{
    [DistinguishedName]
    public string DistinguishedName { get; set; }

    [DirectoryAttribute("cn", ReadOnly = true)]
    public string CommonName { get; set; }

    [DirectoryAttribute]
    public string Title { get; set; }

    [DirectoryAttribute(StoreGenerated = true)]
    public Guid ObjectGuid { get; set; }

    [DirectoryAttribute(StoreGenerated = true)]
    public SecurityIdentifier ObjectSid { get; set; }

    [DirectoryAttribute("memberOf", ReadOnly = true)]
    public Collection<string> GroupMemberships { get; set; }
}

并查询

public class LinqToLdapProvider{
    private LdapConfiguration _cfg;
    public LinqToLdapProvider(string domain){
        _cfg = new LdapConfiguration();
        _cfg.ConfigurePooledFactory(domain)
                .MinPoolSizeIs(1)
                .MaxPoolSizeIs(50)
                .AuthenticateAs(new NetworkCredential("MyDomain.Username","MySecretPAssword"));
    }
    public void Query(){
        using (var context = new DirectoryContext(_cfg)) {
            context.Log = Console.Out;
            var user = context.Query<User>(); // I expected this to return all users
        }
    }
}

但结果我得到了一个非常大的列表,其中包含所有服务器和其他东西......我试图在文档中找到更多信息,并试图修改用户类位的 DirectorySchema 属性,但没有成功。

这是我试图查询用户是绿色笔划的路径的路径。

在此处输入图像描述

4

1 回答 1

1

您需要更具体地映射您的映射。将您的命名上下文更改为您的用户 OU,或者将 ObjectClass="User" ObjectCategory="Person" 添加到您的架构映射中。有关更多信息,请参阅

于 2014-03-28T20:57:05.490 回答