Delphi实现WebService带身份认证的数据传输
2011-08-19 10:18
393 查看
在WebService中,用户身份认证信息可以在客户端通过soap头(soapheader)进行传送。在WebService服务端的编写中,需要对soap头进行处理,这个处理过程就是提取SoapHeader中的用户认证信息进行验证。下面就来看看在Delphi中这个身份认证是如何实现的:
通过WSDLimport引入WEBSERVICE,DELPHI会自动产生自定义的Header类,这个类继承于TSoapHeader。
ShuSoapHeader = class(TSOAPHeader)
private
FNMsg:WideString;
FUserID:WideString;
FPassWord:WideString;
published
propertyNMsg: WideString read FNMsg write FNMsg;
propertyUserID: WideString read FUserID write FUserID;
propertyPassWord: WideString read FPassWord write FPassWord;
end;
同时自动产生引用接口:
InvRegistry.RegisterInterface(TypeInfo(SLoginServicesSoap),'http://passport.shu.edu.cn/', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(SLoginServicesSoap),'http://passport.shu.edu.cn/%operationName%');
InvRegistry.RegisterHeaderClass(TypeInfo(SLoginServicesSoap),ShuSoapHeader, 'ShuSoapHeader', '');
RemClassRegistry.RegisterXSClass(ShuSoapHeader,'http://passport.shu.edu.cn/', 'ShuSoapHeader');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfString),'http://passport.shu.edu.cn/', 'ArrayOfString');
客户端使用:
var
i:integer;
aIntf: SLoginServicesSoap;
soaphead : ShuSoapHeader;
Headers: ISOAPHeaders;
begin
aIntf :=sLogin as SLoginServicesSoap;//THTTPRIO控件
soaphead:= ShuSoapHeader.Create;
soaphead.UserID :='';
soaphead.PassWord := '';
try
Headers := (aIntf as ISOAPHeaders);
Headers.Send(soaphead); //发送Soap Header
i:=aIntf.ValidByEd(Trim(Edit_name.Text),Trim(Edit_pass.Text));
finally
aIntf := nil;
soaphead.Free;
end;
通过WSDLimport引入WEBSERVICE,DELPHI会自动产生自定义的Header类,这个类继承于TSoapHeader。
ShuSoapHeader = class(TSOAPHeader)
private
FNMsg:WideString;
FUserID:WideString;
FPassWord:WideString;
published
propertyNMsg: WideString read FNMsg write FNMsg;
propertyUserID: WideString read FUserID write FUserID;
propertyPassWord: WideString read FPassWord write FPassWord;
end;
同时自动产生引用接口:
InvRegistry.RegisterInterface(TypeInfo(SLoginServicesSoap),'http://passport.shu.edu.cn/', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(SLoginServicesSoap),'http://passport.shu.edu.cn/%operationName%');
InvRegistry.RegisterHeaderClass(TypeInfo(SLoginServicesSoap),ShuSoapHeader, 'ShuSoapHeader', '');
RemClassRegistry.RegisterXSClass(ShuSoapHeader,'http://passport.shu.edu.cn/', 'ShuSoapHeader');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfString),'http://passport.shu.edu.cn/', 'ArrayOfString');
客户端使用:
var
i:integer;
aIntf: SLoginServicesSoap;
soaphead : ShuSoapHeader;
Headers: ISOAPHeaders;
begin
aIntf :=sLogin as SLoginServicesSoap;//THTTPRIO控件
soaphead:= ShuSoapHeader.Create;
soaphead.UserID :='';
soaphead.PassWord := '';
try
Headers := (aIntf as ISOAPHeaders);
Headers.Send(soaphead); //发送Soap Header
i:=aIntf.ValidByEd(Trim(Edit_name.Text),Trim(Edit_pass.Text));
finally
aIntf := nil;
soaphead.Free;
end;
相关文章推荐
- Delphi实现WebService带身份认证的数据传输 (转)
- Delphi实现WebService带身份认证的数据传输
- Delphi实现WebService带身份认证的数据传输
- Delphi实现WebService带身份认证的数据传输
- Delphi实现WebService带身份认证的数据传输
- ssl协议的身份认证和数据传输
- castor + xml schema 实现webservice中复杂结构数据传输
- 在.NET下如何用WebService实现身份认证,及如何跟踪用户的访问[链接]
- castor + xml schema 实现webservice中复杂结构数据传输
- WebService下实现大数据量的传输
- CXF webservice android 实现本地传输数据
- castor + xml schema 实现webservice中复杂结构数据传输
- castor + xml schema 实现webservice中复杂结构数据传输
- WebService CXF框架的使用(实现JSON与XML数据传输)
- castor + xml schema 实现webservice中复杂结构数据传输
- WebService下实现大数据量的传输
- castor + xml schema 实现webservice中复杂结构数据传输
- WebService下实现大数据量的传输
- castor + xml schema 实现webservice中复杂结构数据传输
- android端实现WebService数据传输