Exchange 401 Несанкционированный - PullRequest
2 голосов
/ 21 июня 2010

Я пытаюсь подключиться к нашему серверу Exchange 2007. Я поместил много обработки исключений, чтобы отловить любые ошибки и поместить их в журнал приложения. Во-первых, у меня есть функция, которая обеспечивает пользователю доступ к сервису обмена с предоставленными учетными данными:


public bool Logon()
{
    string pwd = /*Get password*/;

    try
    {
        service.Credentials = new WebCredentials(
            username + "@our.domain", pwd);

        service.FindItems(WellKnownFolderName.Outbox, new ItemView(1));
    }
    catch (Exception)
    {
        return false;
    }
    return true;
}

Если эта функция возвращает false, в журнал приложения помещается запись о том, что пользователю не удалось войти в систему, затем процесс завершается.

Если функция завершается успешно, то где-то вниз по дорожке мы вызываем эту функцию; он получает все встречи для пользователя, которые начинаются в следующие 10 минут:


protected List GetFutureAppointments()
{
    try
    {
        SearchFilter.IsGreaterThanOrEqualTo startTime =
            new SearchFilter.IsGreaterThanOrEqualTo(
                AppointmentSchema.Start, DateTime.Now);

        SearchFilter.IsLessThanOrEqualTo endTime =
                new SearchFilter.IsLessThanOrEqualTo(
                    AppointmentSchema.Start, DateTime.Now.AddMinutes(10));

        SearchFilter filter = 
            new SearchFilter.SearchFilterCollection(LogicalOperator.And,
                new SearchFilter[] { startTime, endTime });

        FindItemsResults results =  
            service.FindItems(
                WellKnownFolderName.Calendar, filter, new ItemView(10));

        return new List(results.Items);
    }
    catch (Exception e)
    {
        Utilities.LogException(e);
        return null;
    }
}

Как видите, функция будет перехватывать все исключения и регистрировать их. В журнале отображается Request failed. The remote server returned an error: (401) Unauthorized. Трассировка стека указывает на функцию service.FindItems().

Так что я немного сбит с толку и, возможно, недостаточно разбираюсь в обмене, веб-сервисах или чем-то еще. Функция входа возвращает true, но затем авторизация завершается неудачно. Есть предложения?

1 Ответ

1 голос
/ 21 июня 2010

Возможно, ваши учетные данные дают вам доступ к исходящим, но не к календарю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...