SharePoint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been trying to connect to our SharePoint server's webservices
with PHP. I downloaded the nusoap library and have been trying to make
a connection using sample code from various websites. I keep getting
the following error:

<h1>You are not authorized to view this page</h1>
You do not have permission to view this directory or page using the
credentials that you supplied because your Web browser is sending a
WWW-Authenticate header field that the Web server is not configured to
accept.
<h2>HTTP Error 401.2 - Unauthorized: Access is denied due to server
configuration.<br>Internet Information Services (IIS)</h2>

My code looks like this:

require_once('/usr/share/php/nusoap/nusoap.php');

/*  Your username and password, separated by a colon
    Domain may be optional, depending on your setup */
$auth = "username:password";

/*  Location of the Lists.asmx file
    If the list is in a subsite, the subsite must be in the path */
$wsdl = "http://domain.com/depts/is/private/_vti_bin/Lists.asmx?WSDL";;

/*  GUID of the list */
$guid = "Shared Documents";

/* Setup NuSOAP
   Sharepoint requires NTLM Authorization
   You need a fairly recent version of CURL installed for this  */
try {
        $client = new nusoap_client($wsdl,true);
        $client->setCredentials("","","ntlm");
        $client->setUseCurl(true);
        $client->useHTTPPersistentConnection();
        $client->setCurlOption(CURLOPT_USERPWD, $auth);
        //$client->soap_defencoding = 'UTF-8';


        $xml = '
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
  <soap:Body>
    <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/";>
      <listName>' . $guid . '</listName>
      <viewName>All Documents</viewName>
      <query>
        <xsd:schema>schema</xsd:schema>xml</query>
      <viewFields>
        <xsd:schema>schema</xsd:schema>xml</viewFields>
      <rowLimit>string</rowLimit>
      <queryOptions>
        <xsd:schema>schema</xsd:schema>xml</queryOptions>
      <webID>string</webID>
    </GetListItems>
  </soap:Body>
</soap:Envelope>
        ';

        $result = $client->call("GetListItems",$xml);
        if(isset($fault)) {
                echo "<p>Error: " . $fault . "</p>\n";
        }
        echo "<pre>\$result = " .
htmlspecialchars(print_r($result,true)) . "</pre>\n";
 }
catch(Exception $e) {

        echo "<p>" . $e->getMessage() . "</p>\n";
}


Our SharePoint server uses integrated authentication. I've tried
several permutations of the username, including just the username,
domain\username and username@domain. All are returning the same error.
My guess is that PHP is sending the username/password combination in a
way that SharePoint doesn't like.

Has anyone been able to connect to SharePoint's web services and if so, how?

Thanks

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux