1

我正在尝试使用 .Net Core 控制台应用程序从 Openldap 服务器中检索已删除的 UUID。

我能够看到我的 Openldap 服务器确实发送了一条同步信息消息,并且通过使用 Perl 脚本并转储整个响应,它包含了当前条目的 UUIDS。

我使用 syncprov Overlay 设置了 Openldap 服务器(请参阅我之前的问题Can't get deleted items from OpenLDAP Server using Content Synchronization Operation (syncrepl))。

在多次重新阅读 RFC4533 和 OpenLdap Syncrepl 文档并分析响应后,使用我当前的配置(无访问日志)无法检索已删除的条目,只能检索当前条目的列表。它们包含在同步信息消息中。无论如何,我希望检索信息,以便我可以在发送的内容和客户端上的内容之间进行增量。

你知道如何在 C# 中捕获消息吗?

我尝试使用 DirectoryServices.Protocols 和 Novell.Directory.Ldap 库(分别)。我一定错过了什么,但不知道到底是什么......

我使用了https://www.microfocus.com/documentation/edirectory-developer-documentation/ldap-libraries-for-c-sharp/上提供的 Novell 代码示例(SearchPersist 示例并添加了相应的控件) 。

我可以检索添加/修改的条目,但不能检索包含当前条目的同步信息消息。

4

1 回答 1

1

通过深入研究 Novell 库,我发现了一些用于解码 ASN1 对象的有用类。

通过使用以下代码,我能够确定中间同步信息消息的类型。

var decoder = new LBERDecoder();
(Asn1Tagged)decoder.decode(intermediateResponse.getValue());`

然后,根据标签,我能够解码消息(使用方法.decode(valueToDecode)

于 2019-10-21T12:45:29.920 回答