使用Objective-C搜索开放目录(LDAP)

使用Objective-C搜索开放目录(LDAP),objective-c,cocoa,ldap,Objective C,Cocoa,Ldap,是否有人在Objective C中有任何用于连接到外部Open Directory服务器并搜索特定节点(如/Users/)的示例代码 我翻阅了苹果的OD指南,但我想不出来 是你看过的“OD指南”吗?似乎附带了相当丰富和广泛的代码示例——您发现自己被哪些示例难住了?Leopard中的API实际上有一个更好的CoreFoundation和Objective-C包装器,尽管它在10.5中是一个私有框架 好消息是它是开源的,因此您可以获取源代码。坏消息是它引用了其他私有框架中的几个头(Directory

是否有人在Objective C中有任何用于连接到外部Open Directory服务器并搜索特定节点(如/Users/)的示例代码


我翻阅了苹果的OD指南,但我想不出来

是你看过的“OD指南”吗?似乎附带了相当丰富和广泛的代码示例——您发现自己被哪些示例难住了?

Leopard中的API实际上有一个更好的CoreFoundation和Objective-C包装器,尽管它在10.5中是一个私有框架

好消息是它是开源的,因此您可以获取源代码。坏消息是它引用了其他私有框架中的几个头(
DirectoryServiceCore/CSharedData.h
CoreFoundation/CFRuntime.h
),这使得构建自己的嵌入副本有些困难。但是,您可以这样做,但是您需要从其他项目中获取相关的标题才能这样做

然而,在此期间,您可能会发现该项目中的代码对于编写您自己的代码很有说明性


要获得更有用的可嵌入代码,可以查看开源代码,尤其是DSObjCWrappers例程。这曾经是loginwindow应用程序的一部分,但我记得在10.3或10.4中被分离出来。但是,与新的API不同,它不需要访问任何私有API。我还从个人经验中了解到,可以直接将整个DSObjCWrappers文件夹复制并导入到您自己的项目中,并在适当的位置使用它,不过我建议使用Xcode的重构支持更改所有类名,以避免名称空间冲突(即将“DSoAttribute”更改为“MyDSAttribute”,等等).

谢谢大家的好建议,我认为使用C是满足我需要的方法。我发现这个网站很有用: