gpt4 book ai didi

c# - 为 LDAP 查询转义字符串中的非特殊字符

转载 作者:太空狗 更新时间:2023-10-29 22:10:58 26 4
gpt4 key购买 nike

我希望这个问题的标题合适。这里有点混杂。

我在 C# 中创建了一个创建 Active Directory 用户的函数。使用需要如下所示的 LDAP 字符串:

userinfo.displayName = "Surname, Firstname"

CN=" + userinfo.displayName, "user"

以下异常消息被传回,因为逗号在字符串中。

An invalid dn syntax has been specified.

应用字符串后的完整dn如下

"CN=Surname**,** Lastname,OU=Users,DC="Foo",DC="net"

通用名称 CN= 中的逗号是问题...

有没有办法让 C# 忽略字符串中的逗号?有效地逃避它。

最佳答案

转义专有名称中的无效字符是通过前导斜杠(“\”)完成的。例如,上面的识别名应该是:

"CN=Surname\, Lastname,OU=Users,DC=Foo,DC=net"

根据 RFC 4514: Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names 的第 2.4 节, 字符 , " , # , + , , , ; , < , = , > , 和 \可以通过前导斜杠转义。其他非字母数字字符应以\XX的形式显示其中 XX 是 UTF8 字符编码的十六进制数字。有关示例,请参见第 4 节。

请注意 X500DistinguishedName类(在 System.Security Cryptography 中)似乎没有 Parse 或 Escape 方法来帮助解决这种情况。

关于c# - 为 LDAP 查询转义字符串中的非特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com