ONVIF 自定义soap结构体实现用户认证

</pre><p>ONVIF 用户校验实现</p><p><span style="white-space:pre">	</span>ONVIF 开发使用C/C++的话,使用 gsoap 这个工具是好用的。直接生成代码框架。以下是使用 gSOAP 自己修改框架完成用户认证的方法,</p><p><ol><li>gSOAP 生成的代码框架,在stdsoap2.c 文件的 struct SOAP_STD_API soap {  ... }  结构体里面添加一个结构体  struct WS_UsernameToken SUsernameToken;  用来保存每条指令传过来的用户名,密码校验等信息。</li></ol></p><p></p><pre name="code" class="cpp">#define AUTHENTICATION_NAME_LEN 64
struct WS_UsernameToken
{
    char m_acSoapUsername[AUTHENTICATION_NAME_LEN];
    char m_acSoapPassword[AUTHENTICATION_NAME_LEN];
    char m_acSoapPasswordType[AUTHENTICATION_NAME_LEN*2];
    char m_acSoapNonce[AUTHENTICATION_NAME_LEN];
    char m_acSoapCreated[AUTHENTICATION_NAME_LEN];
};

因为gSOAP生成的代码框架,每条请求都携带一个 struct  soap *  指针,所以把结构体存在这个 结构很合理。回调函数指针也应该存储在这个结构体。


2. 从请求指令里获取客户端传过来的用户名密码等信息

soapC.c 文件的 soap_in_SOAP_ENV__Header() 这个函数 (这个函数是gSOAP生成),是请求消息头域分析函数,从这里可以得到ONVIF定义的SOAP头域的所有字段。

仿照 soap_in_SOAP_ENV__Hea

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值