我需要有PHP身份验证的Exchange服务器。一旦能够成功地连接到它,我需要写WebDAV请求在PHP,所以我可以从Exchange服务器中提取数据,并在Web应用程序中使用它。

这将是不同的是2003 Exchange服务器已经基于表单的身份验证(FBA)接通稍微简单。随着FBA开启我相信我该做下面的(见链接)博客文章说什么。我的问题是,我需要帮他转换指令ASP到PHP。

HTTP:/ /blogs.msdn.com/webdav_101/archive/2008/12/12/webdav-fba-authentication-sample-explained.aspx

是否有人了解什么他描述这篇文章的细节?任何有识之士将有所帮助。

如果需要更具体的信息:我很困惑,如何配置POST请求(我的意思是,当你通常POST数据到一个表单,你不一般的发帖加载页面,在他的指令他?说要张贴到/exchweb/bin/auth/owaauth.dll。这是如何工作的?)

我也困惑,怎么办列出的第三步骤:3)和WebReq.KeepAlive AllowAutoRedirect应设置为True的请求

在最重要的是,我真的可以使用一些帮助,详细说明如何利用发布数据,并把它在PHP中的cookie。

在此先感谢您的帮助提供!

有帮助吗?

解决方案

我认为要做到这一点的最好办法是通过卷曲。 ( http://ca.php.net/curl

在链接的页面,第一示例是使用(I已将其用于自动登录到其他网站)

善类

它应具有的KeepAlive(报头),并通过默认重定向上(curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);

您需要确保web服务可以创建/修改cookie.txt然后尝试:

$cc = new cURL();
$cc->post('http://www.yourexchange.com','destination=https%3A%2F%2F' . $strServerName . '%2Fexchange%2F' . $strUserName . '%2F&username=' . $strDomain . '%5C' . $strUserName . '&password=' . $strPassword . '&SubmitCreds=Log+On&forcedownlevel=0&trusted=0'); 

以上是从您链接到页面上的信息的快速转换,你可能需要在你的变量使用进行urlencode(),如果有特殊字符。一旦上述工作的成功可以使用

$page=$cc->get('http://www.yourexchange.com/?whatever=youneed');

在$页面将包含来自获得字符串结果(发送存储在该请求的文本文件中的cookie),那么你可以使用正则表达式来得到你所需要的。

这应该让你非常接近你所需要的。

其他提示

它看起来像文本文件实际上是一个名为“cookie.txt的”。您可以使用此名称创建一个空白的文本文件,并把它上传到同一个目录。在您的FTP客户端,你应该能够设置权限,我相信777是许可的代码,你将需要。如果你不能只是进入许可代码尝试检查所有箱子给所有权限。

重新:过去后,

这是正确的,其中,所述脚本运行它基本上是一个客户端和cookie文件是存储用于容易再利用cookie的一个简单的方法。

在同一文件夹作为您的代码文件cookies.txt

是的,这指的是一个名为curlclass.php文件(“曲奇”与“S”的说明)。

卷曲使用该存储并在后续请求中发送的cookie。你在你的假设,即在运行PHP脚本的Web服务器充当客户端正确;基本上,它被登录到Exchange服务器通过模拟POST到登录表单,然后保存该cookie并与每个请求发送它,就如同一个浏览器那样。

创建文件cookies.txt并设置权限,以便运行Apache的情况下,用户可以写入文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top