C#Active Directory库

时间:2010-02-17 01:35:02

标签: c# asp.net active-directory

有没有人在C#和asp.net中看到任何用于处理活动目录(主要是用户相关的东西)的实体库。我最好是与asp会员资格整合或构建定制的东西。

我看了LINQtoAD,但它似乎不再活跃了。

3 个答案:

答案 0 :(得分:12)

System.DirectoryServices程序集和命名空间是否不足?

答案 1 :(得分:6)

如果你使用的是.NET 3.5,那么在处理主体 - 用户,组,计算机等等时,还要查看System.DirectoryServices.AccountManagement以获得更简单的界面。

查看这篇MSDN文章,作为S.DS.AD的一个很好的介绍:

Managing Directory Security Principals in the .NET Framework 3.5

干杯!

答案 2 :(得分:0)

您可以参考我的基于ActiveRecord模式的OSS项目如下(因为它是开源的,您可以找到如何使用DirectoryEntry操作AD,DirectoryEntry不仅支持LDAP协议,还支持IIS,WIN等等,所以我开发了这个lib):

例如:更新用户AD对象。

using (var userObject = UserObject.FindOneByCN(this.ADOperator, “pangxiaoliang”))
{
     if(userObject.Email == "example@landpy.com")
     {
          userObject.Email = "mv@live.cn";
          userObject.Save();
     }
}

例如:查询用户AD对象。

// 1. CN end with "liu", Mail conatains "live" (Eg: mv@live.cn), job title is "Dev" and AD object type is user.
// 2. CN start with "pang", Mail conatains "live" (Eg: mv@live.cn), job title is "Dev" and AD object type is user.
            IFilter filter =
                new And(
                    new IsUser(),
                    new Contains(PersonAttributeNames.Mail, "live"),
                    new Is(PersonAttributeNames.Title, "Dev"),
                    new Or(
                            new StartWith(AttributeNames.CN, "pang"),
                            new EndWith(AttributeNames.CN, "liu")
                        )
                    );
// Output the user object display name.
foreach (var userObject in UserObject.FindAll(this.ADOperator, filter))
{
    using (userObject)
    {
        Console.WriteLine(userObject.DisplayName);
    }
}

例如:自定义查询。

IFilter filter =
    new And(
        new IsUser(),
        new Custom("(!userAccountControl:1.2.840.113556.1.4.803:=2)")
        );
// Output the user object display name.
foreach (var userObject in UserObject.FindAll(this.ADOperator, filter))
{
    using (userObject)
    {
        Console.WriteLine(userObject.DisplayName);
    }
}

<强> https://landpyactivedirectory.codeplex.com/documentation

你会发现使用它很容易操作AD,如果你对它不感兴趣,请忽略我的回答。有关AD的任何问题请与我联系:)