Это озадачивает меня.У меня есть два сервера обмена.Тот, который я могу прочитать просто отлично, другой я не могу.У первого есть SSL, у второго нет.
Подключение и чтение определенной папки «Входящие» на сервере SSL с надлежащими учетными данными для этой папки «Входящие» РАБОТАЕТ.Мое соединение выглядит следующим образом:
destination=https://myssqlserver.myorg.com/exchange/fish/Inbox&username=myorg.com\fish&password=FishPassword&SubmitCreds=Log+On&forcedownlevel=0&trusted=0
Эта та же самая вещь (тот же самый точный код) терпит неудачу, когда я пытаюсь подключиться к коробке NON-SSL и читать из другой папки «Входящие» (для которой у меня также есть учетные данные)
destination=http://mynonsslserver.myorg.com/exchange/mammel/Inbox&username=myorg.com\mammel&password=MammelPassword&SubmitCreds=Log+On&forcedownlevel=0&trusted=0
Что странно, если я просто беру информацию о подключении без SSL и набираю его в URL для IE, он запрашивает имя пользователя и пароль, и я могу нормально видеть папку «Входящие» через OWA.
http://mynonsslserver.myorg.com/exchange/mammel/Inbox/?username=myorg.com\mammel&password=MammelPassword
Так почему я не могу работать на сервере без SSL с этой настройкой?Я не понимаю
Вот мой код аутентификации.Сбой на линии, где предполагается получить ответ:
public void Authenticate()
{
// Create the web request body:
var credentials = "destination={0}&username={1}\\{2}&" + "password={3}&SubmitCreds=Log+On&forcedownlevel=0&trusted=0";
var body = string.Format(credentials, _uri, _domain, _conn.Username, _conn.Password);
var bytes = Encoding.UTF8.GetBytes(body);
// Create the web request:
var request = (HttpWebRequest)WebRequest.Create(_conn.AuthURI);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.CookieContainer = new CookieContainer();
request.ContentLength = bytes.Length;
// Create the web request content stream:
using (var stream = request.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
stream.Close();
}
// Get the response & store the authentication cookies:
// THIS LINE FAILS
var response = (HttpWebResponse) request.GetResponse();
if (response.Cookies.Count < 2)
throw new AuthenticationException("Login failed. Is the login / password correct?");
_cookieContainer = new CookieContainer();
_cookies = new CookieCollection();
foreach (Cookie myCookie in response.Cookies)
{
_cookieContainer.Add(myCookie);
_cookies.Add(myCookie);
}
response.Close();
Console.WriteLine("----------------- AUTH REQUEST COMPLETE -----------------");
}