TO lihongyue(yue) :
  如果服务器端没有进行安全控制的话,那只要你的服务器端运行了scktsvr.exe,
  我就可以用SocketConnection连接你的服务器端程序;如果服务器端的httpsrvr.dll
  放在C:\Inetpub\scripts目录下,我又知道服务器的IP(这些都不是保密的),我就
  可以用WebConnection连接服务器端程序。
  当然,是不希望出现以上我想说的这种假设的,那请问怎么避免。 这就是我的问题。

解决方案 »

  1.   

    兄弟姐妹们,帮忙呀,我是测试WebConnection连接时发现的,
    只要知道服务器的IP(或域名),就可以看到ServerName列表
    的内容,更要命的是还可以进行连接访问数据。你说这个问题
    大不大呀!会死人的呀。
      

  2.   

    什么意思呀!依我的理解,在type library中写一个接口,客户端登陆的时侯,执行这个接口,这个接口检索数据据,看你的用户名密码是否正确,正确,OK..错误....失败....
    不知道你是不是这个意思...
      

  3.   

    TO jiyirufeng(记忆如风):
      那我不执行这个接口呢?关键是这个接口放在服务器端的哪个位置,
      使得客户端不得不执行这个接口否则就无法连接服务器端的数据。
      还没说清楚吗?
      

  4.   

    TO myfine(myfine) :
    好的,谢谢你的热心参与了。
      

  5.   

    我是在中间代理层,做的权限工作,脱离边界类。减少耦合。
    参考组件的技术,我把各个基础模块作为作为组件,而权限是通过一个函数传递给组件去完成的。
    例:constructor Create(AOwner:TComponent;Conn:TADOConnection;AUser:TUser);
    这样就完成了权限控制,
    而TUser是关键,他是一个类,他又很多方法,而所有登陆者所带的权限都存道TUser中,而看TUser是否具有某权限时调用方法theUser.ExcRice('Q_Fregith_QP')
      

  6.   

    这个接口就是在应用服务器中,也就是远程数据模块,你可以用docm(intranet),socket两个方式,你登陆界面肯定有在输入用户名,密码后,要确定输入的按钮吧!你在buttononClick事件中,把username,password传给接口(也即调用接口),其它的事情当然就是接口的事了..推荐好像有一本关于三层的书,刘新华写的,你可以看看...写得比较详细,我看的时侯只有delphi4,不知道有没有后序版本,以前写了好几个三层的系统,但现在好久不弄了...
      

  7.   

    可以在服务器端定义一个接口,客户端应该首先调用该接口进行登陆,登陆成功后把登陆信息和成功标志返给Client
    然后要求每次Client调用服务器方法的时候都要传这个登录信息和标志给Server端,Server端验的方法验证有效后才执行相应功能,否则不予执行。这样的话如果人家不用你的客户端就不能调用你的服务器中的服务了
      

  8.   

    还是没搞出来,哪位朋友有没有简单一点的例子,
    只要实现服务器端定义一个接口,客户端输入User、
    Psw后就调用这个接口,验证pass就连接数据库,
    失败就返回一个例外。我真的是搞得头都大了。
    例子也可以发到
      

  9.   

    谢谢各位朋友的热心帮助,特别是zyyjc() ,
    下班后,还在QQ里给我讲解,很感动的。