2010-06-21 244 views
2

我正嘗試連接到我們的Exchange 2007服務器。我已經安排了很多異常處理來捕獲任何錯誤並將它們放入應用程序日誌中。首先,我必須確保用戶可以與提供的憑據訪問Exchange服務功能:Exchange 401未授權

 

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()函數。

所以我有點困惑,可能不太瞭解交換或Web服務或其他什麼。登錄函數返回true,但隨後授權失敗。有什麼建議麼?

回答

1

您的憑據可能允許您訪問發件箱,但不能訪問日曆?

+0

嗯,可能。我會問我們的技術團隊並回復你。 – Anthony 2010-06-21 01:54:09