首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#活动目录库

问C#活动目录库
EN

Stack Overflow用户
提问于 2010-02-17 09:35:02
回答 3查看 3.8K关注 0票数 3

有没有人在C#和asp.net中看到过用于active directory (主要是与用户相关的东西)的实体库?我是更好的整合与asp会员或建立一些定制的东西。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-17 09:36:14

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

票数 13
EN

Stack Overflow用户

发布于 2010-02-17 14:08:54

如果你使用的是.NET 3.5,也可以查看System.DirectoryServices.AccountManagement,在处理用户、组、计算机等主体时,它的界面要简单得多。

请查看这篇MSDN文章,它是对S.DS.AD的一个很好的介绍:

Managing Directory Security Principals in the .NET Framework 3.5

干杯!

票数 6
EN

Stack Overflow用户

发布于 2013-10-31 12:21:19

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

例如:更新用户AD对象。

代码语言:javascript
复制
using (var userObject = UserObject.FindOneByCN(this.ADOperator, “pangxiaoliang”))
{
     if(userObject.Email == "example@landpy.com")
     {
          userObject.Email = "mv@live.cn";
          userObject.Save();
     }
}

例如:查询用户AD对象。

代码语言:javascript
复制
// 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);
    }
}

例如:自定义查询。

代码语言:javascript
复制
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);
    }
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2277748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档