2009-01-30 2 views
2

Я пытаюсь найти сотрудника в Active Directory с помощью следующей C# код:Сбой запроса LDAP из-за одной цитатой

"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. 

Что я делаю неправильно? нужна помощь.

Спасибо!

ответ

0

Вы пытались:

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

И нет:

Replace("'", "\'") 

(Там есть дополнительный апостроф там).

1

Сделайте замену на своей собственной линии.

Username.Replace("'", "\'"); 

"Select userPrincipalName, ADsPath, Department, Mail, HomeMDB, cn, ssn FROM 
'LDAP://" + DomainName + "' WHERE objectCategory = 'person' and 
sAMAccountName = '" + UserName + "'"; 
Смежные вопросы