三层中,服务端能否切断某个客户端的连接?(50分)

  • 主题发起人 主题发起人 薄荷
  • 开始时间 开始时间

薄荷

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层里,用ado连ms sql server,在中间层得到了client端登陆的用户名,
这些用户名都是sql server里的用户名。我有没有什么办法切断某个client的
连接?不是全部的连接。在数据库端切断也可以。
 
这么简单,当客户端连接上来时,在中间层写一个方法。如果这个用户,返回一个值。
根据这个值,异常中止这个客户端的连接。就是写一个函数返回一个值。根据这个值。判
断这个客户端是否有权登录系统。就这样!!!
 
我就是用的这种方法,所以才得到了客户端的用户名和ip等。
但是这种方法只能控制让不让登陆,不能在登陆后根据用户名切
断与其的连接。
我想,这个问题可能又是很难解决。因为如果做成无状态的
中间层应该就没有为客户保留状态。不过我知道ip,可能可以通过
切断ip连接的方法来实现。
 
FLASH窗体一起动时,就把IP送到中间层来不就行了吗?或者机器码。
 
服务器把用户的权限写到数据库里,比如取消其一切权限。
用户在执行任何操作到要先判断是否有相应的权限,这样
满足你的需求吗?
 
to xeen: 你说的是指动态修改权限?
我的意思是登陆后,我如果觉得某个client不爽,就切断他。呵呵。
行不行?
 
也是可以的,但要用到CallBack机制,比较麻烦.
 
我这有个例子,可以发给你看看。
你的EMail?
 
可以在服务器端写方法来获取数据与保存数据,这样就有机会判断这个用户是不是不爽了,
如果不爽马上杀掉!
 
to xeen:
soft_ice@263.net 多谢!
to 无忧鱼?怎么杀掉? disconnect?那岂不是所有得都kill了?
 
发了,注意我把TTimer设成10s,耐心点.
 
to xeen;
怎么,没有收到呀? soft_ice@263.net
 
又发了一次,700多K能放下吧?
 
真奇怪还是没有
要不 发到 max4d@sina.com 看看
我的信箱是15M的啊。
 
发了,这次再收不到我也没办法了
 
to xeen:
不管收不收到,分都是你的了。
这是我所以问题里第一个得到回答得。分很少,不成敬意啊。
 
终于收到了,不过我记得callback机制只有dcom有,用socketConnect就不太行了。
 
也给我发一个吧?
bill.robin@263.net
 
从Delphi 5 开始 TSocketConnection 也支持CallBack了.
 
接受答案了.
 
后退
顶部