在同一台机器上,一个帐号只能登陆一次,如果再使用相同的帐户登陆的话,就提示“该帐户再使用中”,用VB.NET怎么实现呢?
  第二个问题就是怎样实现必须登陆才能访问除首页外的其他网页?如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,这个功能用VB.NET又怎么实现呢?

解决方案 »

  1.   

    1、用户登录后将用户名存在Applicatoin或Cache对象中,每次登录时检查是否该用户已经登录,登出时将用户名从Application或Cache中删除;
    2、在Web.Config文件中设置FORM/WINDOWS/PASSPORT验证,并使用LOCATION配置授权/拒绝登录用户的文件夹位置。
      

  2.   

    1.application
    2.
     web.config中配置
        <authorization>
            <deny  users="?"/>
                <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
        </authorization>
      

  3.   

    用Cache,可以看孟子张的例子
      

  4.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168请注意退出时清除cache信息
      

  5.   

    我讲一下思路吧.
    1.你数据库中设置ip,user,state分别代表登入时的ip地址,用户信息,用户状态.每次用户进来你就记录下这几个值,发现相同的ip,user,且有该帐户在线(看状态),就不让他登进来.
    2.在没有权限时不能看到的页,应该在底层写一个验证的方法,去验证该用户可不可以看该页.验证的方法可以通过数据库和SESSION来完成.
      

  6.   

    实现一个帐号只能登陆一次的功能可以用临时表吧。
    如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,现在web.config将
    验证方式改成
       <authentication mode="Forms"> 
    <forms name=".ASPXCOOKIE" loginUrl="index.aspx" protection="All" timeout="30" />
    </authentication>
    然后将授权策略改成
       <authorization>
            <deny users="?" /> <!-- 不允许匿名用户 -->
        </authorization>
      

  7.   

    第一个问题:在数据库中建立一个表online,表示用户是否在线,当用户在首页进行登陆时,对数据库进行查询,如果没有查到相关记录,表示尚未登陆,则将记录写到数据库中;如果有相关记录,则表示已经进行了登陆但没有退出,此时可以给出提示信息。第二个问题:用上面的方法同样可以实现,在子页面的Page_Load事件中写入判断,如果用户信息在数据库,则表示已经登陆了,就可以浏览该页,如果没有查询到相关记录,表示用户尚未登陆就通过IE地址栏输入到该页的网址,此时,跳转到首页,让他登陆就可以了。
      

  8.   

    实现的不让同一个用户登陆  
    string test = "username";
    private void Page_Load(object sender, System.EventArgs e)
    {
       if(Application["User_" + test] == null || Application["User_" + test].ToString() != Request.UserHostAddress)
          Session["login"] = null;
       else
          Response.Write(Session["login"].ToString() + "已登录<br>");
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
       Session["login"] = test;
       Application["User_" + test] = Request.UserHostAddress;
    }
      

  9.   

    1.用数据库,麻烦
    2.用Application
      

  10.   

    如果想长久保存数据用数据库,记录,登陆后做一标记如果短时间的就SESSION或APPLICATION
      

  11.   

    在ASP.NET 中实现单点登录
    作者:孟宪会 出自:【孟宪会之精彩世界】
    http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168
      

  12.   

    所以还是用cookie来作咯