Delphi6中SOAP App中如何进行安全性设置,只让适合的人进入使用(100分)

  • 主题发起人 主题发起人 autumn
  • 开始时间 开始时间
A

autumn

Unregistered / Unconfirmed
GUEST, unregistred user!
SOAP App的SOAP DataModule建立的程序,当别人获取ip后就可以用
soapconnection连接我的程序,获取dataprovider 集合,浏览和修改
我的数据,有什么办法,只让部分用户使用和对数据进行加密?
 
一、用户登录管理,每一个登录的用户发一个通行证。
二、将业务模块做成COM+,这样就不会曝露在外。
三、用户要调用接口提供的功能,需要提供在(一)中得到的通行证。
 
我暂时想到的方法是使用IIS自带的安全认证.
ISDMHrWeb = interface(IAppServerSOAP)
['{05EF8CEC-8FC7-47F3-934F-D486A20BC0E1}']
function Login2(const AValue:string):string;stdcall;
end;

TSDMHrWeb = class(TSoapDataModule, ISDMHrWeb, IAppServerSOAP)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSetProvider1: TDataSetProvider;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
DataSetProvider2: TDataSetProvider;
DataSetProvider3: TDataSetProvider;
private
public
function Login2(const AValue:string):string;stdcall;
end;
在上面所新建的SOAP Server DataModule中我加入了Login2的方法,但是我不会用.
我用tcpTrace.exe跟踪过
var
i:IAppServerSOAP;
begin
SoapConnection1.Connected := True;
i:=SoapConnection1.GetSOAPServer;
cdsSOAP.Data := i.SAS_GetRecords('DataSetProvider1', -1, iOut, MetaDataOption + ResetOption, '', ovParams, ovOwnerData);
cdsDept.Data := i.SAS_GetRecords('DataSetProvider2', -1, iOut, MetaDataOption + ResetOption, '', ovParams, ovOwnerData);
...
end;

对于i每一个SAS_GetRecords方法都将新建一个HTTP连接,所以
>用户登录管理,每一个登录的用户发一个通行证
似乎是不行的.除非使用这样的方法认证:function GetRecords(AUser,APass:string):Olevariant
如果你所说的通行证是windows的证书系统的话,我知道的不多
请继续指教
 
就是用function GetRecords(AUser,APass:string):Olevariant这种方式的登录。GETRECORDS生成一个GUID给每一个登录的用户。当然服务器端要有用户管理类。这样,用户要调用接口的功能时,服务提供者会先到用户管理类中验证用户的合法性。这样还可以控制用户的连接数量。我就是用这种方法为公司做了一个远程查询系统。运行良好。
 
SOAP不单是无状态对象,而且是一个方法调用完后连接就关闭了.不像DCOM
只要你不将接口赋予nil就不会释放.如果要实现你上面所说的功能,我必须
结合其它有状态对象进行应用,是这样的意思吗?
 
听听其他朋友的意见
 
我刚开始使用, 没有设计实际问题.对安全性,我还没有多考虑.
请问,是怎么实现重用的?代码侃侃
 
你的SOAP难道不是用来封装COM/COM+组件的?
 
后退
顶部