如何使用PHP对远程Microsoft Exchange 2010进行身份验证
和往常一样,这是一个来自高层管理层的奇怪且不可协商的请求。 无论如何,故事如下:如何使用PHP对远程Microsoft Exchange 2010进行身份验证,php,authentication,exchange-server,exchangewebservices,outlook-web-app,Php,Authentication,Exchange Server,Exchangewebservices,Outlook Web App,和往常一样,这是一个来自高层管理层的奇怪且不可协商的请求。 无论如何,故事如下: 我将在位置a建立一个网站,比如说英国(使用CentOS、PHP、Apache) 上面有一个登录表单,用户可以输入他们的Exchange 2010用户名(电子邮件)和密码进行登录。Exchange 2010位于位置B的位置,比如我们 简而言之,问题是如何通过远程Exchange 2010进行身份验证 有几个建议扔给我,但我甚至不确定这是可以做到的第一位 我们可以利用Exchange 2010的OWA吗 我们可以
- 我将在位置a建立一个网站,比如说英国(使用CentOS、PHP、Apache)
- 上面有一个登录表单,用户可以输入他们的Exchange 2010用户名(电子邮件)和密码进行登录。Exchange 2010位于位置B的位置,比如我们
- 我们可以利用Exchange 2010的OWA吗
- 我们可以使用ActiveSync吗
- 我们可以使用EWS吗?(Exchange Web服务)
向您致意您的意思可能是针对集成了Exchange server的Active directory进行身份验证。然后您可以使用LDAP:
您的意思可能是针对集成了Exchange server的Active directory进行身份验证。然后您可以使用LDAP:
我会查看SourceForge上的adLDAP库。给我发电子邮件,我会给你发送我的文档,设置大约需要20分钟,你只需要MS Active Directory,而不需要LDAP。雅虎网站上的Kwerlandjr
我会查看SourceForge上的adLDAP库。给我发电子邮件,我会给你发送我的文档,设置大约需要20分钟,你只需要MS Active Directory,而不需要LDAP。雅虎网站上的Kwerlandjr
是的,您可以使用Exchange Web服务来执行此操作,我建议使用托管API。在此处下载:,文档在此处: 这是你怎么做到的。首先包括正确的名称空间:
// 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);
是的,您可以使用ExchangeWeb服务来执行此操作,我建议使用托管API。在此处下载:,文档在此处: 这是你怎么做到的。首先包括正确的名称空间:
// 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);
你可以试试- 它是Exchange Web服务的PHP包装器。它将让您了解如何使用Ex Server进行身份验证,以及如何使用EWS进行身份验证。Python版本有更好的身份验证,因为它循环使用各种身份验证方法 此外,您还可以看看这个:
干杯~你可以试试- 它是Exchange Web服务的PHP包装器。它将让您了解如何使用Ex Server进行身份验证,以及如何使用EWS进行身份验证。Python版本有更好的身份验证,因为它循环使用各种身份验证方法 此外,您还可以看看这个:
干杯~谢谢您提供的信息:)我提到了LDAP,但它需要我们设置和部署LDAP,因此提到Exchange是为了看看我们是否可以利用它。例如,ActiveSync?OWA?感谢您提供的信息:)我提到了LDAP,但它要求我们设置和部署LDAP,因此提到Exchange是为了看看我们是否可以利用它。例如,ActiveSync?OWA?哎呀,意识到你希望用PHP来做这件事,如果你需要帮助翻译,请告诉我。谢谢:)我找到了一个使用NetworkCredentials/NTLM的PHP版本。但不知道如何在PHP中使用WebCredentials实现它?(使用电子邮件作为用户名)哎呀,意识到你希望用PHP来做这件事,如果你需要帮助,请告诉我。谢谢:)我找到了一个使用NetworkCredentials/NTLM的PHP版本。但不知道如何在PHP中使用WebCredentials实现它?(其中使用电子邮件作为用户名)