发布网友
共3个回答
热心网友
webservice传递的参数中可以包括几个系统级的验证参数,比如客户端独有的ID,密码,时间戳。
然后客户端通过约定好的加密方式把这几个参数加密后得到一个密码字符串,三个参数连加密结果一起发过去。
服务器端也按同样方式把这三个参数加密一次,如果得到的结果和客户端发来的相同,就通过认证。
时间戳是发送的时间,毫秒级的,这个一直在变,所以每次的加密结果都不同,即使被人拦截到了也不能重用上一次的加密结果。记得设置时间戳的超时和判断大小,不要让过时的消息骗了你
热心网友
C#调用PHP写的WebService
1.server.php
<?php
class Result{
function add($a,$b){
return $a+$b;
}
}
?>
2.kobetest.wsdl
<?xml version='1.0' encoding='UTF-8'?>
<!-- WSDL file generated by Zend Studio. -->
<definitions name="kobetest" targetNamespace="urn:kobetest" xmlns:typens="urn:kobetest" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="add">
<part name="a" type="xsd:string"/>
<part name="b" type="xsd:string"/>
</message>
<message name="addResponse">
<part name="addReturn" type="xsd:string"/>
</message>
<portType name="ResultPortType">
<operation name="add">
<input message="typens:add"/>
<output message="typens:addResponse"/>
</operation>
</portType>
<binding name="ResultBinding" type="typens:ResultPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="add">
<soap:operation soapAction="urn:ResultAction"/>
<input>
<soap:body namespace="urn:kobetest" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body namespace="urn:kobetest" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="kobetestService">
<port name="ResultPort" binding="typens:ResultBinding">
<soap:address location="http://192.168.1.55/server.php"/>
</port>
</service>
</definitions>
3.在VS2005中“添加web引用”,然后在代码里调用webservice就OK了。
试试吧,不行再说
热心网友
没作过,但觉得就是调用webService 应该没什么特殊的