Как я могу проверить учетные данные, переданные конструктору NetworkCredential для использования с EWS? - PullRequest
0 голосов
/ 23 марта 2020

Есть ли способ проверки учетных данных, переданных в System.Net.NetworkCredential класс? Я хочу убедиться, что вызовы, сделанные в веб-службах Exchange, действительны, чтобы они могли работать.

Вот пример кода:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
 service.Credentials = new NetworkCredential(user_id, password);

//how to validate credentials here? 

service.Url = new System.Uri("some_url");
Microsoft.Exchange.WebServices.Data.Appointment meeting1 = new Microsoft.Exchange.WebServices.Data.Appointment(service);

 //add some extra stuff to the meeting object

  ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

 Microsoft.Exchange.WebServices.Data.Mailbox test = new Microsoft.Exchange.WebServices.Data.Mailbox(email);

 Microsoft.Exchange.WebServices.Data.FolderId folderid = new Microsoft.Exchange.WebServices.Data.FolderId(WellKnownFolderName.Calendar, test);

 meeting1.Save(folderid,SendInvitationsMode.SendToAllAndSaveCopy);

Кроме того, есть ли способ проверить, действительно ли .Save() работал? функция не имеет возвращаемого значения.

1 Ответ

1 голос
/ 25 марта 2020

Есть ли способ проверки учетных данных, переданных в Систему. Net .NetworkCredential class?

Это учетные данные Active Directory, поэтому, если вы хотите их проверить, посмотрите на что-то вроде Проверка имени пользователя и пароля в Active Directory? .EWS не предоставляет никаких методов проверки учетных данных, кроме простого возврата 401, если они не верны.

Кроме того, есть ли способ проверить, действительно ли работает .Save ()? функция не имеет возвращаемого значения

Если с сервера получен недопустимый ответ, то будет сгенерировано исключение, поэтому в этом случае вы должны попытаться / поймать хотя бы вокруг сохранения (исключение может быть на основе запроса или ответа). С Meetings, если создание успешно в вашем примере, объект meeting1 теперь будет иметь базовый Id в свойстве Id.

...