@Kvert007

Кодировка LDAP запроса: как?

Здравствуйте, такая вот проблема. Есть код:

hr = pADsys->get_UserName(&bstr);
	if (hr!=S_OK)
	{
		string error= format_error(hr);
		LPSTR error1 = const_cast<char *>(error.c_str());
		PutInfotoFileLog(error1,"getDomainUserSAMAccountName:get_UserName",4);
		return ConvertStdStringToAnsiBSTR(error1);
	}//получаем полное имя пользователя в домене
	IADs *pUsr=NULL; //контейнер
 	USES_CONVERSION; //Макросы преобразования
	string strDesc = static_cast<CHAR*>(CW2A(bstr));//
	string LDAP="LDAP://";		//
	string path = LDAP + strDesc;
	wstring wstr( path.begin(), path.end() );	//
	LPCTSTR path2 = W2CT( wstr.c_str( ) );	//формирование корректного пути для создания объекта из AD и приведение типа std::string к LPCTSTR
	hr = ADsGetObject( path2, IID_IADs,(void**)&pUsr);

Все отрабатывает хорошо, пока в пути не встретятся русские символы, допустим путь будет
LDAP://CN=Юрий Петров,CN=ххххх,DC=ххх,DC=хх
Здесь вылетает ошибка, что объект не найден на сервере. Я думаю, проблема в кодировке запроса, но это всего лишь предположение.

Прошу помощи.
  • Вопрос задан
  • 4460 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если используется AD, то кодировка должна быть Windows-1251
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы