php:将 ntlm 凭据转发到 curl

标签 php curl ntlm

我有一个动态 php 页面,我需要使用 get 参数调用它。然后我想将生成的 html 放入一个字符串中并在以后使用它(我正在尝试 web 服务的 tonic 框架)

所以这类似于 PHP - Read dynamically generated (and echoed) HTML into a string?我尝试了使用 cURL 的答案。

问题是身份验证是使用 ntlm (apache mod_auth_sspi) 完成的。执行 curl 的 php 脚本已经过身份验证,例如,只有有效用户才能执行它。是否有可能将这些“凭据”传递给 cURL? (用户名可用,但当然不是密码)

或者完全不同的方法也可以,但我唯一的想法是创建一个函数来创建包含 html 内容的字符串。

$response = new Response($request);
$format = $request->mostAcceptable(array(
    'json', 'html', 'txt'
        ));

switch ($format) {

    case 'html':
        $response->addHeader('Content-type', 'text/html');
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://localhost/viewRecord.php?identifier=' . $identifier);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM); 
        $html = curl_exec($ch);
        curl_close($ch);
        $response->body = $html;
        break;
    //...   
}

最佳答案

我能够通过添加以下 curl 选项来实现它:

curl_setopt($curly[$id], CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($curly[$id], CURLOPT_UNRESTRICTED_AUTH, true);
curl_setopt($curly[$id], CURLOPT_USERPWD, ":");

根据 php 的版本,有一个 bug:https://bugs.php.net/bug.php?id=62195

关于php:将 ntlm 凭据转发到 curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111705/

相关文章:

php - 搜索所有日期以及具有特定时间的两个日期之间的日期

c# - 使用 NTLM 身份验证获取用户和组详细信息

.net - JAX-WS IBM 客户端使用带有 Active Directory 身份验证 (NTLM) 的 .Net WS

javascript - CURL - 获取链接的 HTML 源中的出现次数

php - cURL 版本 7.64 上的 curl_multi 出现 "Could not resolve host"错误

ipad - Sharepoint 2013 网站 NTLM 身份验证 javascript doPostBack 在 Safari 和 iPad 中不起作用

php - 如何在CSS中标记面板主体中的面板链接

php - 存在 Codeigniter 子查询

php - SQL 连接两个表以给出多数组结果

linux - Powershell POST 到 Linux curl