1

與往常一樣,這是來自最高管理層的奇怪且不可協商的請求。 不管怎麼說,這個故事是如下:如何使用PHP對遠程Microsoft Exchange 2010進行身份驗證

  • 我將建立在A處的網站,讓說,英國(使用CentOS的,PHP,Apache)的
  • 有上有一個登錄表單,並且用戶可以輸入他們的Exchange 2010用戶名(電子郵件)和密碼登錄。如果Exchange 2010在位置B,請說美國。

所以這個問題簡而言之就是我如何使用遠程Exchange 2010進行身份驗證?

有扔給我一些建議,但我什至不知道這會在第一時間做...

  • 我們可以利用Exchange 2010中的OWA?
  • 我們可以使用ActiveSync嗎?
  • 我們可以使用EWS嗎? (Exchange Web Services)

我不熟悉微軟的相關技術,所以我的問題簡而言之是有沒有一種Web服務方法或類似的地方可以進行身份​​驗證?

問候

回答

1

你可能意味着對Active Directory進行身份驗證在Exchange服務器integrated.Then您可以使用LDAP:

Authenticating in PHP using LDAP through Active Directory

+1

感謝信息:) 我已經提到LDAP,但它需要我們設置和部署LDAP,因此交易被提及看看我們是否有可能利用它。例如,ActiveSync? OWA? – forestclown 2012-01-04 10:39:37

1

我會考慮在Source Forge的的adLDAP庫。給我發電子郵件,我會將您的文檔發送給您,需要大約20分鐘的時間才能完成設置,而您需要的僅僅是MS Active Directory,您不需要LDAP。 KWSoutherlandJr在雅虎網站com。

adLDAP.courceforge.net

1

是的,你可以使用Exchange Web服務要做到這一點,我推薦的管理API的。這裏下載:http://www.microsoft.com/download/en/details.aspx?id=13480,文檔在這裏:http://msdn.microsoft.com/en-us/library/dd633710%28EXCHG.80%29.aspx

在這裏,你如何做到這一點。首先包括正確的命名空間:

// use the exchange library: 

using System.Security.Cryptography.X509Certificates; 
using Microsoft.Exchange.WebServices.Data; 

然後寫類似這樣的代碼:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

// If you've got a dodgy SSL cert on your exchange box then do this: 

System.Net.ServicePointManager.ServerCertificateValidationCallback = 
    delegate(
     Object obj, 
     X509Certificate certificate, 
     X509Chain chain, 
     SslPolicyErrors errors) 
    { 
     return true; 
    }; 

service.Credentials = new WebCredentials(Username, Password, domain); 

service.Url = new Uri(url); 

// this will fail if the username+password are incorrect: 

Folder.Bind(service, WellKnownFolderName.MsgFolderRoot); 
+0

哎呀,意識到你希望在PHP中做到這一點,讓我知道你是否需要翻譯這個幫助。 – Rocklan 2012-01-12 04:02:42

+0

謝謝:)我找到了一個使用NetworkCredentials/NTLM的PHP版本。但不知道如何使用WebCredentials在PHP中執行此操作? (它使用電子郵件作爲用戶名的地方) – forestclown 2012-01-13 09:41:27

相關問題