【问题标题】:LDAP Query Failure due to single quote由于单引号导致 LDAP 查询失败
【发布时间】:2009-01-30 22:11:55
【问题描述】:

我正在尝试使用以下 c# 代码在 Active Directory 中查找员工:

"Select userPrincipalName, ADsPath, Department, Mail,
 HomeMDB, cn, ssn FROM 
'LDAP://" + DomainName + "'
WHERE objectCategory = 'person' and 
sAMAccountName = '" + UserName.Replace("'", "''") + "'";

当我为姓氏中包含单引号的员工(例如“O'Connor”)运行此命令时,我收到以下错误:

AdsDsoObject' 失败,没有可用的错误消息,结果代码:DB_E_NOTABLE(0x80040E37)。

I also tried Replace("'", "\''"), nothing is working. 

我做错了什么?需要帮助。

谢谢!

【问题讨论】:

    标签: ldap quotes


    【解决方案1】:

    在它自己的行上进行替换。

    Username.Replace("'", "\'");
    
    "Select userPrincipalName, ADsPath, Department, Mail, HomeMDB, cn, ssn FROM 
    'LDAP://" + DomainName + "' WHERE objectCategory = 'person' and 
    sAMAccountName = '" + UserName + "'";
    

    【讨论】:

      【解决方案2】:

      你试过了:

      Replace("'", "\''")
      

      而不是:

      Replace("'", "\'")
      

      (里面多了一个单引号)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-14
        • 1970-01-01
        • 2019-11-30
        • 2011-05-30
        • 2010-09-20
        • 2021-01-18
        • 1970-01-01
        相关资源
        最近更新 更多