php的webservice的soapheader认证问题
参数通过类传输:
class authentication_header {
private $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
}
服务端:
$wsdl_path = FCPATH.'wsdl/user.wsdl';
$s = new SoapServer($wsdl_path,array('actor' => 'user'));
$s -> setClass("user");
$s -> handle();
客户端:$wsdl_path = 'http://api.mypharma.com/wsdl/user.wsdl';
$authvalues = new authentication_header('liu','1234456');
$header = new SoapHeader('urn:Solsoft_user', 'Authentication', $authvalues, false, 'user');
$client = new SoapClient($wsdl_path,array('trace'=>1));
$client->__setSoapHeaders(array($header));
$a = $client->status(1);
红色是服务类的认证方法名称
服务类:
class user
{
public $rootPath;
public $Authenticated;
public $username;
public $password;
function __construct()
{
$this->rootPath=dirname(__FILE__);
require_once $this->rootPath.'/lib/db_class.php';
require_once $this->rootPath.'/model/api_base_model.php';
}
public function Authentication($username,$password)
{
$this->username =$username;
$this->password =$password;
if($this->username == 'liumeng' && $this->password == '123456'){
$this->Authenticated = true;
} else {
$this->Authenticated = false;
}
}
public function status($id)
{
if($this->Authenticated){
require_once $this->rootPath.'/model/member_model.php';
$member_model = new Member_Model();
$a = $member_model->get_data_by_id($id);
return json_encode($a);
}else{
return json_encode(array('error'=>'wrong username or password!'));
}
}
}
红色是传递参数的核心,我试了好长时间才正确,报了N次没有参数的错误,其实还可以通过获取所有输入参数分析得到。
转载于:https://www.cnblogs.com/kudosharry/p/3262121.html
php的webservice的soapheader认证问题相关推荐
- c# WebService添加SoapHeader认证
1.添加一个cretificate类继承自SoapHeader public class CertificateSoapHeader:SoapHeader { ...
- WebService基于SoapHeader实现安全认证[webservice][.net][安全][soapheader]
摘 自: http://blog.sina.com.cn/s/blog_72b7a82d0100yyp8.html WebService基于SoapHeader实现安全认证[webservice][. ...
- .Net WebService基于SoapHeader实现安全认证
主要是接收android传递的数据容易受到误导,多留意参数变化. 一.新增一个类MySoapHeader using System; using System.Collections.Generic; ...
- Delphi实现WebService带身份认证的数据传输
WebService使得不同开发工具开发出来的程序可以在网络连通的环境下相互通信,它最大的特点就是标准化(基于XML的一系列标准)带来的跨平台.跨开发工具的通用性,基于HTTP带来的畅通无阻的能力(跨 ...
- ANDROID调用webservice带soapheader验证
最近的一个项目中调用webservice接口,需要验证soapheader,现将解决方法记录如下:(网上资料出处太多,就不做引用,原作者如看到,如有必要添加请通知) 1.先看接口 POST /webs ...
- 动态调用Webservice 支持Soapheader身份验证(转)
封装的WebserviceHelp类: using System; using System.CodeDom; using System.CodeDom.Compiler; using System. ...
- .NET实现之(WebService数据提供程序)
说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如OledbProvider.SqlServerProvider.OrcaleProvider等等:不同数据源的访问 ...
- ASP.NET MVC 在WebService中Token的使用方法
接口:WebService 方式:Token动态加密签名: 名词解释:Token就是服务端和客户端约定好的一个固定的密码字符串.微信接口上这么写的我就直接般过来了,结果有朋友不理解. WebServi ...
- 华为某部门裁员千人,任正非痛批:“这种领导鼠目寸光“,称职的CFO随时可以接任CEO!...
点击"开发者技术前线",选择"星标????" 在看|星标|留言, 真爱 作者:任正非.咔 嚓: 来源:蓝血研究 回复"666",获取一份专 ...
最新文章
- 说说你对 SVG 理解?
- Java 11正式发布,新特性解读
- oracle 添加登陆数据库触发器--记录IP 地址
- Intellij IDEA设置忽略部分类编译错误
- 基础知识—数据类型-数据类型
- linux内核 快速分片,linux内核学习笔记------ip报文的分片
- 【kafka】控制台默认不能发送大数据 4096 4095 4129
- document.readyState 属性
- 操作系统中高响应比优先调度算法例子
- Layabox3d入门游戏视频教程
- 如何把wav转换为mp3?
- 使用代理服务器哪些风险?
- html中span隐藏属性,span标签的class属性
- dw css定位,Dreamweaver中层的定位
- 华为5g cpe 虚拟服务器,一图看懂华为5G CPE Pro
- 评郭德纲《论50年相声之现状》
- 2011 3D 八卦图 矩阵图
- (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
- ixigua解析_蓝叶分享西瓜视频地址解析php代码
- 次世代的眼泪——游戏美术入门必读辛酸史
热门文章
- markdown表格在github/gitee中合并单元格
- octave绘制图片Figure后无法关闭
- css、js控制html标签的属性和内容
- SVM和感知机的区别(转载+自己笔记)
- ubuntu下面解决mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists
- python建立数据库表格
- Extjs 入门(03) 折叠||收锉
- java 窗口GUI
- python 单例模式的实现方法_python中单例模式的四种实现方式
- 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)