希望实现系统要求同一个用户在同一时间只能登录一次,但没成功(可以用一个账号同时成功登录系统),帮我看看错误出在哪里?
一、Global.asax中的代码:
        void Application_Start(object sender, EventArgs e)
        {
            Application["YZTonline"] = 0;//程序刚开始的时候申请一个全局变量        }        void Session_Start(object sender, EventArgs e)
        {
            Session.Contents["username"] = 0;
        }        void Session_End(object sender, EventArgs e)
        {
            string strUserId = Session["username"] as string;
            ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
            if (strUserId != null && list != null)
            {
                list.Remove(strUserId);
                Application.Lock();
                Application["YZTonline"] = list.Count;
                Application.Add("GLOBAL_USER_LIST", list);
                Application.UnLock();
            }        }二、Web.Config中的配置代码:
<system.web>
    <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
    <!--网页页面无乱码-->    <sessionState mode="InProc" cookieless="true"/>
<compilation debug="true" targetFramework="4.0">
</compilation>三、登录验证代码:
        string strUserId = this.txtusername.Text.ToString().Trim();
        ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
        if (list == null)
        {
            list = new ArrayList();
        }
        for (int i = 0; i < list.Count; i++)
        {
            if (strUserId == (list[i] as string))
            {
                Response.Write("<script>window.alert('您已经登录系统。如非“安全退出”方式关闭系统,请稍候片刻再尝试登录。');</script>");
                return;
            }
        }
        long KeyNumber = Cooperate_Office.Old_App_Code.SmartWebServerScript.GetUserNumber();
        if (list.Count >= KeyNumber)
        {
            Response.Write("<script>window.alert('当前登录的用户数已经达到开发商允许最大登录数,请与开发商联系。');</script>");
            return;
        }
        list.Add(strUserId);
        Application.Lock();
        Application.Add("GLOBAL_USER_LIST", list);       
        Application["YZTonline"] = Convert.ToInt32(Application["YZTonline"]) + 1;
        Application.UnLock();我自己看了一下好像Application.Add("GLOBAL_USER_LIST", list)没有正确执行,list中没有数据。