每次取数据后关闭SOCKET连接,且防止不安全的因素???(50分)

  • 主题发起人 主题发起人 hubeizwj
  • 开始时间 开始时间
H

hubeizwj

Unregistered / Unconfirmed
GUEST, unregistred user!
本人作了个COM+服务器作测试用:
MTSDATAMOUDLE:AdoConnect+ADOQrY+datasetprovider
有以下两个接口
function LOGIN(USERID,PWD:WideString):shortint;
function GetDATA(sqL:widestring):oleVariant;
想实现这样安全的效果:如果用户登陆成功,则将连接字串赋给ADOCONNECT,
否则不赋ADOCONNECT值.
客户端:ClientDataSet+datasource+socketconnect
如果将SOCKET连上,调用APPSVR的GETDATA后不关闭SOCKETCONN
则可以有上面的效果,但本人想这样:每次取数据后关闭SOCKET连接!!
这样就导致连接串为空了!!!
请问如何做才可以做到:
每次取数据后关闭SOCKET连接,且防止不安全的因素???
 
1。每次都關閉連接,那麽每個客戶每次都要重新連接,
釋放當前的MTSRDM應該可以吧,因為每個RDM對一個客戶
2。這個不安全因素比較廣,我自己知道的是COM可以使用WINDOWS的認證,
SOCKET使用scktsrvt.exe提供的“intercept GUID”
 
hsgrass:1.釋放當前的MTSRDM應該可以吧,
2.SOCKET使用scktsrvt.exe提供的“intercept GUID”
对你说的第1个问题:怎么释放当前的RDM,不就是我说的:断开SOCKET连接嘛 ???
第2个,我试过在客户程序上可以绑上intercept GUID,但服务器端就不知如何调用它了!!?
请说一个你的作法???
 
C:/Program Files/Borland/Delphi7/Demos/Midas/Intrcpt/目录下面有例子,
To use this demo;
1) Make sure you have copied the ZLib units from the CD to a directory and
have added that directory to this projects search path.
2) Compile Intrcpt.dpr.
3) Register Intrcpt.DLL using REGSVR32 or TREGSVR on both the client and the
server.
4) On the Server: Bring up the properties for the Socket Server (right click
on the icon in the task bar and select properties) and put the GUID for
Intrcpt.DLL in the Interceptor GUID edit control. The GUID is defined
below as Class_DataCompressor.
5) On the Client: Set the TSocketConnection.InterceptName property to
Intrcpt.DataCompressor. This will set the InterceptGUID property to the
Class_DataCompressor GUID. Recompile your client.
1.使用regSrv32 或delphi自带的TregSvr注册INTRCPT.dll
2.在scksrvt.exe的Incercet GUID填入这个GUID
const
Class_DataCompressor: TGUID = '{B249776C-E429-11D1-AAA4-00C04FA35CFA}';
initialization
{ Use this class factory to allow for easy identification of Interceptors }
TPacketInterceptFactory.Create(ComServer, TDataCompressor, Class_DataCompressor,
'DataCompressor', 'SampleInterceptor', ciMultiInstance, tmApartment);
....
 
如果RDM使用ciMultiInstance方式,則每個客戶連接都會生成一個RDM對應該客戶
所以,釋放RDM即斷開連接
 
接受答案了.
 
后退
顶部