• 如何防止控制客户端使其用同一帐户重复登录系统


    维护一online表,查看有登陆,就不允许再次登陆,以sessionid作为唯一标识符号,也可以产生一个GUID发到COOKIE中,以区分不同的CLIENT,再佐以JS,可以达到更好的效果,比如离开后自动离线

    解决代码:

    public virtual void Application_Start(object sender, EventArgs e)
    {
    // reset the mailer indicator
    Application["MailerStatus"] = "All Mailings Complete";

    // initialize a datatable for users online
    DataTable objUserTable = new DataTable();
    objUserTable.Columns.Add("SessionID",System.Type.GetType("System.Guid"));
    objUserTable.Columns.Add("PeopleID",System.Type.GetType("System.Int32"));
    objUserTable.Columns.Add("ShowDetail",System.Type.GetType("System.Boolean"));
    DataColumn[] pk = new DataColumn[1];
    pk[0] = objUserTable.Columns[0];
    objUserTable.PrimaryKey = pk;
    Application["UserTable"] = objUserTable;
    }

    /**////
    /// The Session_Start event adds user session information to
    /// Application["UserTable"].
    ///
    public virtual void Session_Start(object sender, EventArgs e)
    {
    Application.Lock();
    //Application.Lock ();
    DataTable objUserTable = (DataTable)Application["UserTable"];
    DataRow objRow = objUserTable.NewRow();
    Guid objGuid = Guid.NewGuid();
    objRow[0] = objGuid;
    Session["PfSessionID"] = objRow[0];
    objRow[1] = 0;
    objRow[2] = false;
    objUserTable.Rows.Add(objRow);
    Application["UserTable"] = objUserTable;
    Application.UnLock();
    }


    /**////
    /// The Session_End event deletes user session information from
    /// Application["UserTable"].
    ///
    public virtual void Session_End(object sender, EventArgs e)
    {
    Application.Lock();
    DataTable objUserTable = (DataTable)Application["UserTable"];
    objUserTable.Rows.Find((Guid)Session["PfSessionID"]).Delete();
    Application["UserTable"] = objUserTable;
    Application.UnLock();
    }

  • 相关阅读:
    windown reids
    redis 类型、方法
    nginx 路由配置
    http status code
    beego orm mysql
    thinkphp5
    beego
    MAC 更新brew 镜像源
    php session存入redis
    ios项目开发— iOS8 定位功能API改变
  • 原文地址:https://www.cnblogs.com/Apollo/p/382244.html
Copyright © 2020-2023  润新知