我的目标是从 LDAP 连接中获取 CA 的已发布 CRL。我有一个搜索 LDAP(不是 Active Directory!)的功能,它System.DirectoryServices.Protocols.SearchResultEntryCollection
按预期返回。
$results = LDAPsearch "$_LDAP_server`:$_LDAP_searchPort" "cn=$CA,$_LDAP_searchBase" '(&(certificateRevocationList=*))'
ForEach ($element in $results){
$element.Attributes['cn'].GetValues('string')
$element.Attributes['certificateRevocationList;binary'].GetValues('string')
}
以上正确读取了cn
返回的每个元素的属性值,但是certificateRevocationList
以一种奇怪的格式返回,它与我期望的 Base64 字符串完全不对应(例如,如果您将数据导出到 LDIF 文件或如果您使用 Linux ldapsearch 命令)...
如何获得实际的 Base64 值?
不幸的是,您只能将 'byte[]' 或 'string' 作为参数传递给 GetValues 方法(此处的 'Base64String' 选项对我很有用,但是……)。
下面的当前输出(其中cn
值正确写入但未正确写入certificateRevocationList
):