是否有一个库为C#提供类似LDAP的对象结构?

时间:2016-04-29 17:53:56

标签: c# .net active-directory mono ldap

我想开发一个基于用户,部门的通用身份验证/授权库,其中每个部门都有声明,用户可以拥有角色等等。在网上进行了如此多的思考和搜索之后,我认为最合适的方式(基于我的场景)是开发一个类似LDAP的结构。这样我甚至可以在以后开发与Active Directory / OpenLDAP的集成。

LDAP Structure 图片来自here

在创建自己的库之前,我会知道:是否有一个库已经提供了针对此结构的对象(这样我可以继承和自定义)?我知道我们有来自.NET Framework的System.DirectoryServices和来自Mono的相应库,但我找不到“Entry”类的位置。我知道有一个Novell制作的库也是针对LDAP的,但我认为互联网上有很多关于这个的过时。

修改

我发现DirectoryEntry class已接近,但我无法验证它是否符合Mono标准。

1 个答案:

答案 0 :(得分:2)

正如您可能发现的那样,在众多提供商中有许多不同的LDAP协议实现,因此找到一个适合所有人的库几乎是不可能的。

但是,您是否正确假设许多相同的概念(组,域,个别条目等)将适用,无论您使用哪个提供商,甚至连接过程对于给定的目录服务器,应用基于LDAP syntax的过滤器,然后处理返回的结果,是非常常见的。

因此,即使所述库不存在,您当然可以围绕这些一般概念构建一个接口,所有特定实现都将从这些概念继承而来。

从更技术的角度来看,您对DirectoryEntry的可移植性感到惊讶 - 我将它与System.DirectoryServices.Protocols的一些基本结构一起使用,以连接并绑定到Active Directory,iPlanet和OpenDJ,它运行得非常好。

您还提到了Novell - 为此,我使用了他们的.Net库Novell.Directory.Ldapyou can find here。您会注意到"条目"的概念。这里也提供,包含在LdapEntry课程中。