我正在尝试连接到我们的Exchange 2007服务器 . 我已经放置了很多异常处理来捕获任何错误并将它们放在应用程序日志中 . 首先,我有一个功能,确保用户可以使用提供的凭据访问Exchange服务:
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 回答
您的凭据可能会授予您访问发件箱但不能访问日历的权限?