WebService,我有个疑问,我想让用户登录之后的若干时间内可以访问,原本的思路是用户首先调用服务器端譬如Login方法,分配一个ID给客户,并保存到服务器端列表中,客户进行功能调用时,必须同时提供这个ID,否则不予理睬,并想用一个TIMER去每隔一段时间去清除那些到了时间期限的ID,但后来发现,服务器端的TIMER是无法工作的,后面听说可以用COOKIE,但看了几篇文章,那只是用到网页访问上,如果包含于SOAP文本中,那又该如何??是直接先在THTTPSoapDispatch处监听吗?

解决方案 »

  1.   

    use SOAPHeader, and a background time-out controller component, i.e. a COM+ background server
      

  2.   

    look at Delphi's Demo ($DELPHI)\Demos\WebServices\SOAPHeaders
      

  3.   

    谢谢: Miracle(秋水长天) !
    我看了DEMO,但是,如果有太多客户访问,那么,客户列表将会十分庞大,所以,想要进行定期清除,你说的用COM+,具体点,是指用WEBSERVICE作为“前台”,以COM+所为后台,里面进行时间的监控吗?
    DEMO中其实没有用到COOKIE,而是采用服务器端保存登录状态,我没有接触过COOKIE,如果采用COOKIE是不是意味着状态信息由客户端进行保存?
    请继续关注好吗?谢谢!
      

  4.   

    cookie方法不可靠,如果用户知道你用的是这个方法,他清除cookie就搞定了。就像www.520music.com网站那样,限制每个用户每天只能下3首歌,用cookie来计数,结果我每3次就清除cookie,无限下载,哈哈
      

  5.   

    谢谢: dreaminger(小锡) ,
    请问,在WebService中怎样用COOKIE?
      

  6.   

    服务器端的TIMER是无法工作的,怎么会这样呢?
    用定时器应该可以的