Не удается подключиться и получить контакты из базы данных общих папок в почтовом ящике exchange 2010
Может ли кто-нибудь подсказать мне, как подключиться к почтовому ящику Exchange 2010 и получить контакты из общей папки. У меня есть почтовый ящик Exchange 2010, и мне нужно подключиться к Exchange через мое приложение .net, и я использую неуправляемый API (HTTP-запрос) для подключения и получения контактов из общей папки почтового ящика Exchange 2010. Обычно я пробовал использовать Exchange 2007 и пытался вызвать его с помощью URL-адреса почтового ящика, который подключается к серверу Exchange CAS и возвращает ответ HTTP, и мне удалось успешно подключиться. Но точно так же, когда я подключаюсь с использованием URL-адреса почтового ящика Exchange 2010, я получаю HTTP 403: Ошибка запрещенного доступа. Я также заметил, что есть некоторые изменения в конфигурации Exchange 2010 по сравнению с Exchange 2007. Было бы очень полезно, если бы кто-нибудь мог предложить мне, как подключить или настроить почтовый ящик соответствующим образом, чтобы я мог получать контакты из общей папки. В Exchange 2007 по умолчанию был предоставлен общедоступный виртуальный каталог, тогда как в Exchange 2010 такого общедоступного виртуального каталога не было.
Есть ли обходной путь для добавления общедоступного виртуального каталога в почтовый ящик Exchange 2010 и подключения его через приложение .net с помощью неуправляемого кода или любым другим альтернативным способом? Пожалуйста, предложите мне?
Что я уже пробовал:
Это формат URL-адреса Exchange для подключения ContactConfiguration.ExchangeURI = "http://<почтовый сервер-имя=""&ГТ;/общественных/&ЛТ;общих папок="" название=""&ГТ;"
List< contact> ContactList = null;
Система.Uri myUri = new System. Uri(ContactConfiguration.Биржа);
струнный сквери;
сквери = "" +
"< a:searchrequest xmlns:a= "DAV:" >" +
"<a:sql>SELECT \"DAV:getlastmodified\",\"DAV:id\",\"DAV:uid\",\"urn:schemas:contacts:cn\",\"zLinkedIn\", \"zJigsaw\", \"zFacebook\",\"zJobHistory\", \"zCompanyMirrorValue\", \"urn:schemas:contacts:personaltitle\", \"urn:schemas:contacts:givenName\", \"urn:schemas:Contacts:middlename\", \"urn:schemas:Contacts:SN\", \"urn:schemas:contacts:email1\", \"urn:schemas:contacts:email2\", \"urn:schemas:httpmail:textdescription\" " +
"FROM \ "" + ContactConfiguration.ExchangeURI +"\"" +
"Заказать по \" urn:схемы: контакты: email1 \"" +
"" +
"";
HttpWebRequest HttpWRequest = GetWebRequest(myUri);
HttpWRequest.ContentLength = sQuery.Длина;
HttpWRequest.Метод = " поиск";
Байт[] ByteQuery = Система.Текст.Кодирование.ASCII.GetBytes(sQuery);
HttpWRequest.ContentLength = ByteQuery.Длина;
использование (Stream QueryStream = HttpWRequest. GetRequestStream())
{
QueryStream.Write(ByteQuery, 0, ByteQuery.Длина);
}
Строка sText = GetHttpResponse(HttpWRequest);
HttpWRequest = null;
ContactList = ParseAllContactXML(sText);