问题描述
我一直在致力于从wordpress页面上的表单创建Azure DevOps工作项的项目。一切都可以在WAMPserver上运行的本地wordpress安装上正常运行,但是一旦将其移至开发或生产服务器上,我会收到以下错误消息:“ TF400813:资源不可用于匿名访问。需要客户端身份验证。”我相当确定这将是需要在服务器上处理的内容,但是我不确定是什么。我能够使用在WAMPserver安装上为此目的创建的服务帐户进行完全身份验证,但是Windows Server IIS安装无法配合使用。 wordpress页面处理身份验证并通过PHP使用CURL传递数据。这是代码。
$url = 'https://organiztion-url/UMCom_DefaultCollection/area_path/_apis/wit/workitems/$'.$_POST['IssueType'].'?api-version=5.0';
$headers = array('Content-Type: application/json-patch+json');
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_USERPWD,'account:password');
curl_setopt($curl,CURLOPT_HTTPAUTH,CURLAUTH_ANY);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($curl,1);
curl_setopt($curl,CURLOPT_CUSTomrEQUEST,'PATCH');//PATCH
curl_setopt($curl,CURLOPT_POSTFIELDS,$jsonData);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
解决方法
解决方案是同时使用PAT和标准身份验证,因为我们的本地环境无法正确使用PAT,而我们的Dev,Stage和Prod环境则需要PAT。