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

相关问题