使用PHP的SharePoint web服务持久身份验证
我想构建一个php应用程序,它使用restful SharePoint web服务(带有简单http身份验证的https) 我用CURL做了一个请求,但花了很长时间(3秒)。经过一点调试后,我发现在每个请求中,身份验证占用了大部分时间,因为它会执行一些重定向等操作 这不会发生在浏览器中,在第一个请求之后,身份验证是持久的 我试图用两个不同的调用来模拟这一点:1个调用获取WSS_KeepSessionAuthenticated Cookie,另一个调用实际获取web服务。我记得会话变量中的cookie,并将其用于对web服务的所有后续调用 问题是第二个请求(使用cookie)没有进行身份验证(http 401) 以下是成功获取cookie的第一个请求:使用PHP的SharePoint web服务持久身份验证,php,authentication,sharepoint,curl,cookies,Php,Authentication,Sharepoint,Curl,Cookies,我想构建一个php应用程序,它使用restful SharePoint web服务(带有简单http身份验证的https) 我用CURL做了一个请求,但花了很长时间(3秒)。经过一点调试后,我发现在每个请求中,身份验证占用了大部分时间,因为它会执行一些重定向等操作 这不会发生在浏览器中,在第一个请求之后,身份验证是持久的 我试图用两个不同的调用来模拟这一点:1个调用获取WSS_KeepSessionAuthenticated Cookie,另一个调用实际获取web服务。我记得会话变量中的cook
$ch = curl_init('https://server/default.aspx');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
这是尝试使用cookie实现持久身份验证的第二个请求:
$ch = curl_init('https://server/somewebservice/');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_COOKIE, implode(';', $session_key));
这就是401
是不是我错过了什么
谢谢你看一看没有变化。我仍然得到401。