本帖最后由 tazij 于 2012-11-23 16:40:25 编辑

解决方案 »

  1.   

    SESSION就可以了.但是密码不能明文比较.
      

  2.   

    php也有头部验证方法 soap模式有 nusoap没试过 你可以试下'->'看下有这个方法不
    client端:$h = new SoapHeader('mynamespace', 'checkUser', 'xiebuqing');
    $client->__setSoapHeaders($h);server端:private $isChecked=false;//标识符:用户是否通过头部验证
    //soap头部验证
    function checkUser($a)
    {
    if(md5($a) != '3cfbb5b29989ec9c00ac7be8cb6c67fd')
    {
    throw new SoapFault('Server','对不起,您无权访问!');
    }
    $this->isChecked = true;
    }不过soap模式是可以有办法跳过头部验证的,我之前做demo时,是在server端定义个全局变量 调用每个函数前判断一下这个全局标志。
      

  3.   

    还有两种方式一种是HTTP Header,另一种是Soap Header
    HTTP Header就是检查Authentication: BASIC base64_encode('username:password')
    Soap Header在网上找了个例子,供参考
    $client = new nusoap_client('http://www.yourdomain.com/service.asmx?wsdl', true,'', '', '', '');
    $client -> setHeaders('  
    <tns:AuthenticationHeader xmlns:tns="http://tempuri.org/webservice">
      <tns:UserName>username</tns:UserName> 
      <tns:Password>password</tns:Password>   
      </tns:AuthenticationHeader>
    ');