我暂时想到的方法是使用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的证书系统的话,我知道的不多
请继续指教