是否有库为 C# 提供类似 LDAP 的对象结构?
Is there a library to provide LDAP-like object structure for C#?
我想开发一个基于用户、部门的通用 Authentication/Authorization 库,其中每个部门都有声明,用户可以有角色等。在网络上思考和搜索之后,我认为最合适的方法(基于我的场景)是开发一个类似 LDAP 的结构。这样我什至可以在之后开发与 Active Directory/OpenLDAP 的集成。
图片取自here
在制作自己的库之前,我想知道:是否有库已经提供了针对这种结构的对象(这样我就可以继承和定制)?我知道我们有来自 .NET Framework 的 System.DirectoryServices
和来自 Mono 的相应库,但我找不到 "Entry" 类 在哪里。我知道也有一个针对 LDAP 的 Novell 制作的库,但我认为互联网上有很多关于这个的过时内容。
编辑
我发现 DirectoryEntry
class 很接近,但我无法验证它是否兼容 Mono。
正如您可能已经发现的那样,LDAP 协议在众多提供商中有许许多多不同的实现,因此要找到一个万能的库几乎是不可能的。
但是,您是正确的,假设许多相同的概念(组、域、个人条目等)将适用,无论您使用的是哪个提供商,甚至是连接到给定目录服务器,应用基于 LDAP syntax 的过滤器,然后处理返回的结果,这是非常常见的。
因此,即使所述库不存在,您当然可以围绕这些通用概念构建一个接口,您的所有特定实现都将从中继承。
从更技术的角度来看,您会惊讶于 DirectoryEntry
的便携性 - 我将它与 System.DirectoryServices.Protocols
中的一些基本结构一起使用,以连接并绑定到 Active Directory、iPlanet 和OpenDJ,效果非常好。
您还提到了 Novell - 为此,我使用了他们的 .Net 库 Novell.Directory.Ldap
,you can find here. You'll notice the concept of an "entry" is available here as well, encompassed within the LdapEntry class。
我想开发一个基于用户、部门的通用 Authentication/Authorization 库,其中每个部门都有声明,用户可以有角色等。在网络上思考和搜索之后,我认为最合适的方法(基于我的场景)是开发一个类似 LDAP 的结构。这样我什至可以在之后开发与 Active Directory/OpenLDAP 的集成。
在制作自己的库之前,我想知道:是否有库已经提供了针对这种结构的对象(这样我就可以继承和定制)?我知道我们有来自 .NET Framework 的 System.DirectoryServices
和来自 Mono 的相应库,但我找不到 "Entry" 类 在哪里。我知道也有一个针对 LDAP 的 Novell 制作的库,但我认为互联网上有很多关于这个的过时内容。
编辑
我发现 DirectoryEntry
class 很接近,但我无法验证它是否兼容 Mono。
正如您可能已经发现的那样,LDAP 协议在众多提供商中有许许多多不同的实现,因此要找到一个万能的库几乎是不可能的。
但是,您是正确的,假设许多相同的概念(组、域、个人条目等)将适用,无论您使用的是哪个提供商,甚至是连接到给定目录服务器,应用基于 LDAP syntax 的过滤器,然后处理返回的结果,这是非常常见的。
因此,即使所述库不存在,您当然可以围绕这些通用概念构建一个接口,您的所有特定实现都将从中继承。
从更技术的角度来看,您会惊讶于 DirectoryEntry
的便携性 - 我将它与 System.DirectoryServices.Protocols
中的一些基本结构一起使用,以连接并绑定到 Active Directory、iPlanet 和OpenDJ,效果非常好。
您还提到了 Novell - 为此,我使用了他们的 .Net 库 Novell.Directory.Ldap
,you can find here. You'll notice the concept of an "entry" is available here as well, encompassed within the LdapEntry class。