我的程序中,如果一个用户多次登陆,要求新一次登陆后,以前的登陆无效。比如,用户0001在计算机1上登陆,然后在计算机2上有登陆后,计算机1的登陆自动退出(类似于msn在多台计算机上登陆的情况,后面的登陆后,前面的登陆自动退出)。我的机器是使用Web Service给用户提供服务。用户登陆后才能够调用相应的服务。我记得在php中,没一个Session都有一个唯一的ID号,而.net中好像没有这个东西。多谢高手指点。

解决方案 »

  1.   

    Web Service好像没有Session呢
      

  2.   

    msn 客户端是不是一直在判断从服务器发来的信息中 有代表登录信息的数据
    这样的话不就实现了比如你在服务器上存放一个登录IP每隔一段时间客户端要和服务器交换信息的时候吧这个信息也交换下 顺便判断下 如果登录IP不是本纪 说明已经在其他地方登录 这样第一个机器上运行的客户端自动关闭不就可以了我的思路或许太麻烦了吧  【^_^】
      

  3.   

    to 我记得在php中,没一个Session都有一个唯一的ID号,而.net中好像没有这个东西。webservice也有session,而且和php一样。
      

  4.   

    To: 9raul(唯我) 
    Web service中可以使用Session的,将EnableSession设置为True就可以了。
    To: Lover211(Lover211) ,zhengjob() :
    这个恐怕是不行的。因为如果一个局域网内部的话,他们的IP是相同的。而我的程序中客户端几乎都是在一个局域网内部的。希望大家指点,分数不够,可以再加,谢谢!
      

  5.   

    登陸信息(例如登陸主機IP等)都保存在websever中的列表中,然後再有登陸者,先同server中的列表中的信息對比,有相同的用戶名則替換(例如換IP等),沒有就加入新的信息。
      

  6.   

    大致思路如下:1、客户端掉用webservice来进行登录,webservice验证信息后,数据库记录登录信息后产生一个唯一ID标示,来表示此登录信息,然后webservice把此ID存入session中;2、客户端创建cookie来保证一个client端在同一个session下运行;当向webservice发送请求的时候,webservice先访问session来获得登录信息ID,然后通过此ID访问数据库来获得登录信息,看其是否有效,如果有效的话,则继续服务;否则停止服务。3、当用同一用户进行登录的时候,在数据库端除了做1所有的步骤外,要把以前用同一个用户登陆的信息进行标示为无效。
      

  7.   

    To: Knight94(愚翁)多谢老大指点,以前记得察看过,没有SessionID这个属性。现在看了一下,是这样的,存在这个属性,可能以前看漏了。多谢老大了。
      

  8.   

    你写webmethod要加上EnableSession=true的属性,否则无法访问session,例如:
    [WebMethod(true)]
    or
    [WebMethod( EnableSession=true )]
      

  9.   

    通过网卡的mac确定唯一性嘛,兄弟,只要有唯一标志都可