В чем проблема?Как подключиться к Exchange Server с помощью текущих учетных данных пользователя Windows?
У нас есть сервер Exchange Server 2010 SP2, IIS 7.5 и консольное приложение в VS2013.
Таким образом, мы сделали следующее:
TimeZoneInfo timeZone = TimeZoneInfo.Local;
ExchangeService EWSservice = new ExchangeService(ExchangeVersion.Exchange2010_SP2, timeZone);
//EWSservice.Url = new Uri("our url");
EWSservice.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback);
Оба способа определить URL работают. Попытка установить полномочия:
EWSservice.Credentials = new WebCredentials("[email protected]", "mypass");
Это тоже работает. Но я хочу подключиться, используя текущие учетные данные пользователя Windows. Некоторые примеры кода, которые использовались и врезались:
EWSservice.Credentials = new WebCredentials(CredentialCache.DefaultCredentials);
EWSservice.UseDefaultCredentials = true;
EWSservice.Credentials = (NetworkCredential)CredentialCache.DefaultCredentials;
Все это возвращаемые 401 ошибка: Несанкционированное
Кроме того, я редактировал app.config как это - но он не работает:
<authentication mode="Windows">
</authentication>
<identity impersonate="false"/>
<!--Other stuff-->
</authentication>
Тогда я прочитал о режимах проверки подлинности и нашел это: Windows User getting "access denied" from exchange server
Администратор имеет установить этот параметр делегата, но соединение все еще не работает ...
Теперь я прибавил:
EWSservice.TraceEnabled = true;
и я получаю ответ обмена в консоли:
HTTP/1.1 401 Unauthorized
Content-Length: 0
Date: Wed, 20 Apr 2016 07:59:01 GMT
Set-Cookie: exchangecookie=bfab7cdda62a4bf8be5b43689199fcf6; expires=Thu, 20-Apr
-2017 07:59:02 GMT; path=/; HttpOnly
Server: Microsoft-IIS/7.5
WWW-Authenticate: Basic realm="our-domain"
X-Powered-By: ASP.NET
Любые идеи?
Так консоль App неудачу или вы пытаетесь сделать это в ASP. сеть ? Возможно, вам захочется взглянуть на какой-либо запрос в скрипачье и посмотреть, что Authentication пытается использовать его (например, Basic или NTLM). Это старый, но при условии, что EWS Managed API по-прежнему использует Httpwebrequest, все еще относительный https://blogs.msdn.microsoft.com/buckh/2004/07/28/authentication-in-web-services-with-httpwebrequest/ –
Его появление в консоли App. Использование HttpWebRequest возвращает ошибку 401 слишком –