0

從ASP.NET MVC Intranet應用程序添加約會到Exchange日曆我已經有了一個ASP.NET MVC 4 Intranet應用程序

該應用程序使用Windows身份驗證來驗證用戶。 我可以通過User.Identity.Name獲取用戶名。這包含域名和用戶名(MyDomain \ Username)。

我現在想通過Exchange Web服務API向用戶日曆添加約會。

我能做到這一點像下面這樣:

var service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
     service.Credentials = new WebCredentials(Settings.MyAccount, Settings.MyPassword); 
     service.Url = new Uri(Settings.ExchangeServer); 

var appointment = new Microsoft.Exchange.WebServices.Data.Appointment(service); 
appointment.Subject = setAppointmentDto.Title; 
appointment.Body = setAppointmentDto.Message; 
appointment.Location = setAppointmentDto.Location; 

... 

appointment.Save(SendInvitationsMode.SendToAllAndSaveCopy); 

這增加了在憑證中指定的用戶預約。

我沒有當前登錄用戶的密碼。 因爲我使用的是Windows身份驗證(Active Directory帳戶),有沒有辦法以某種方式使用此身份驗證信息來將Exchange Web服務與使用Web應用程序的用戶的帳戶一起使用? 由於安全性,無法從Active Directory中檢索用戶的密碼。

是否有另一種方法呢? 是否有可能爲使用該服務的用戶創建另一個用戶的約會?

問候

亞歷山大

回答

0

您有設置憑據兩個選項。

// Connect by using the default credentials of the authenticated user. 
service.UseDefaultCredentials = true; 

// Connect by using the credentials of user1 at contoso.com. 
service.Credentials = new WebCredentials("[email protected]", "password"); 

來源爲上述和充分的信息是這裏http://msdn.microsoft.com/EN-US/library/office/ff597939(v=exchg.80).aspx

微軟還建議使用自動發現來設置URL端點

// Use Autodiscover to set the URL endpoint. 
service.AutodiscoverUrl("[email protected]"); 

如果你想爲其他用戶創建一個約會,您將使用

appointment.RequiredAttendees.Add("[email protected]"); 

appointment.OptionalAttendees.Add("[email protected]"); 

,如果他們被要求或可選的依賴。

但是,這會將預約更改爲會議。會議要求只是與會者的約會。

相關問題