RFC 2253 - 轻型目录访问协议 (v3)
RFC 2253 - Lightweight Directory Access Protocol (v3)
我正在使用以下内容:https://www.novell.com/documentation/developer/jldap/jldapenu/api/com/novell/ldap/util/DN.html 在我的应用程序中。
为了创建 DN 对象,我需要放入 dnString,它必须遵守 RFC 2253 中描述的语法。
我的 DN 包含:“\”和“,”字符(还有“\,”,两个字符紧接在一起)。
我找不到任何网站准确说明如何获取 RFC 2253 的有效 DN。我发现:
https://ldapwiki.com/wiki/RFC%202253
https://www.rfc-editor.org/rfc/pdfrfc/rfc2253.txt.pdf
两者都提到“,”和“\”是特殊字符,但none说明了如何正确转义它。
如何使用这些值获取有效的 DN?
RFC 2253 第 4 页:
If a character to be escaped is one of the list shown above, then it is prefixed by a backslash (’\’ ASCII 92).
所以转义逗号应该是 \,
转义反斜杠应该是 \
.
逗号是 DN 中的分隔符。例如:
cn=admin,ou=marketing,o=corporation
所以只有当不作为分隔符时才需要转义,像这样:
cn=Smith\, John,ou=marketing,o=corporation
如果您使用带逗号的 CN 创建对象,Active Directory 会为您转义。
反斜杠是一个特殊字符,因为它用于转义其他字符。因此,如果您 不是 将它用于该目的,则需要使用它自己进行转义:
cn=North\South America,ou=marketing,o=corporation
尽管在那个例子中我会使用正斜杠 ("North/South America"),这又提出了另一点(与您眼前的问题无关,但值得一提):正斜杠不是特殊字符DN,但它们位于 LDAP 路径中。因此,如果您有这样的 DN:
cn=North/South America,ou=marketing,o=corporation
然后,如果您需要在 LDAP 路径中使用它,则不能直接将其放入:
LDAP://cn=North/South America,ou=marketing,o=corporation
因为/
是分隔符,所以会认为DN就是cn=North
。在这些情况下,您也需要使用反斜杠转义:
LDAP://cn=North\/South America,ou=marketing,o=corporation
但是仅当您在 LDAP 路径中使用它时。
我正在使用以下内容:https://www.novell.com/documentation/developer/jldap/jldapenu/api/com/novell/ldap/util/DN.html 在我的应用程序中。
为了创建 DN 对象,我需要放入 dnString,它必须遵守 RFC 2253 中描述的语法。
我的 DN 包含:“\”和“,”字符(还有“\,”,两个字符紧接在一起)。
我找不到任何网站准确说明如何获取 RFC 2253 的有效 DN。我发现:
https://ldapwiki.com/wiki/RFC%202253
https://www.rfc-editor.org/rfc/pdfrfc/rfc2253.txt.pdf
两者都提到“,”和“\”是特殊字符,但none说明了如何正确转义它。
如何使用这些值获取有效的 DN?
RFC 2253 第 4 页:
If a character to be escaped is one of the list shown above, then it is prefixed by a backslash (’\’ ASCII 92).
所以转义逗号应该是 \,
转义反斜杠应该是 \
.
逗号是 DN 中的分隔符。例如:
cn=admin,ou=marketing,o=corporation
所以只有当不作为分隔符时才需要转义,像这样:
cn=Smith\, John,ou=marketing,o=corporation
如果您使用带逗号的 CN 创建对象,Active Directory 会为您转义。
反斜杠是一个特殊字符,因为它用于转义其他字符。因此,如果您 不是 将它用于该目的,则需要使用它自己进行转义:
cn=North\South America,ou=marketing,o=corporation
尽管在那个例子中我会使用正斜杠 ("North/South America"),这又提出了另一点(与您眼前的问题无关,但值得一提):正斜杠不是特殊字符DN,但它们位于 LDAP 路径中。因此,如果您有这样的 DN:
cn=North/South America,ou=marketing,o=corporation
然后,如果您需要在 LDAP 路径中使用它,则不能直接将其放入:
LDAP://cn=North/South America,ou=marketing,o=corporation
因为/
是分隔符,所以会认为DN就是cn=North
。在这些情况下,您也需要使用反斜杠转义:
LDAP://cn=North\/South America,ou=marketing,o=corporation
但是仅当您在 LDAP 路径中使用它时。