当前位置:编程学习 > C#/ASP.NET >>

使用一段时间后,正确的用户名密码也不能登录,服务器重启又好了

使用一段时间后,正确的用户名密码也不能登录,服务器重启又好了。

登录页面代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["sf"] = null;
        Session["user"] = null;
        
        Session["name"] = null;

        
        Session["bm"] = null;
        
        Session["zc"] = null;
        Session["ygh"] = null;
               
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
     
        string a = TextBox1.Text.Trim();
        string b = Common.MD5(TextBox2.Text.Trim());
        bool ff = false;
         //普通教师登录
        if (RadioButton1.Checked)
        {
           //Page.RegisterStartupScript("a", "<script>alert('目前系统禁止录入新的数据,请静候通知!');</script>");

           string sql = "select count(*) from KY_YGXX where YGH='" + a + "'and PWD='" + b + "' and SF=0";
           //判断用户名,密码
           ff = Common.IsLogin(sql);
           
           //成功登录
           if (ff)
           {
               Session["sf"] = ("老师");
               Session["user"] = (a);
               string sql1 = "select XM from KY_YGXX where YGH='" + a.Trim() + "'";
               Session.Add("name",Common.ReturnText(sql1).Trim().ToString());
               //Session["name"] = (Common.ReturnText(sql1).Trim().ToString());
               
               sql1 = "select BM from KY_YGXX where YGH='" + a.Trim() + "'";
               Session["bm"] = (Common.ReturnText(sql1).Trim());
               sql1 = "select ZC from KY_YGXX where YGH='" + a.Trim() + "'";
               Session["zc"] = (Common.ReturnText(sql1).Trim());
               Session["ygh"] = (a);
               
               Response.Redirect("Main.aspx", false);
               


           }
           //登录失败
           else
           {
               Page.RegisterStartupScript("a", "<script>alert('帐号密码错误!');</script>");
               //Page.RegisterStartupScript("a", "<script>window.open('BookEd.aspx?id=" + 483 + "','newwindow', 'height=400, width=710, top=250, left=450, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, statu s=no')</script>");

           }
        }
        //管理员登录
        else if (RadioButton2.Checked)
        {

            string sql = "select count(*) from KY_YGXX where YGH='" + a + "'and PWD='" + b + "' and SF=1";
            ff = Common.IsLogin(sql);
            
            if (ff)
            {
                Session["sf"] = ("管理员");
                Session["user"] = (a); 
                string sql1 = "select XM from KY_YGXX where YGH='" + a + "'";
                Session["name"] = (Common.ReturnText(sql1).Trim());
                sql1 = "select BM from KY_YGXX where YGH='" + a + "'";
                Session["bm"] = (Common.ReturnText(sql1).Trim());
                //Response.Cookies["Session["user"].ToString()Info"].Expires = DateTime.Now.AddMinutes(20);
                Response.Redirect("Main2.aspx",false);
            }
            else
            {
                Page.RegisterStartupScript("a", "<script>alert('帐号密码错误!');</script>");


            }
        }
        //审核员登录
        else
        {
           //Page.RegisterStartupScript("a", "<script>alert('目前系统禁止进行部门审核,请静候通知!');</script>");
            string sql = "select count(*) from KY_YGXX where YGH='" + a + "'and PWD='" + b + "' and SF=2";
           ff = Common.IsLogin(sql);
           
           if (ff)
           {
               Session["sf"] = ("审核员");
               Session["user"] = (a); 
               string sql1 = "select XM from KY_YGXX where YGH='" + a + "'";
               Session["name"] = (Common.ReturnText(sql1));
               sql1 = "select BM from KY_YGXX where YGH='" + a + "'";
               Session["bm"] = (Common.ReturnText(sql1));
               //Response.Cookies["Session["user"].ToString()Info"].Expires = DateTime.Now.AddMinutes(20);
               Response.Redirect("Main2.aspx", false);
           }
           else
           {
               Page.RegisterStartupScript("a", "<script>alert('帐号密码错误!');</script>");

           }
        }
    } --------------------编程问答-------------------- 判断登录方法:
public static bool IsLogin(string sql)
    {
        SqlConnection conn = ConnectionFactory.newInstances();
       
        try
        {
            SqlCommand cmd = new SqlCommand(sql, conn);

            object o = cmd.ExecuteScalar(); 
            
            if (Int16.Parse(o.ToString())>0)
            {
                conn.Close();
                return true;
            }
            else
            {
                conn.Close();
                return false;
            }
        }
        catch
        {
            return false;
        }
        finally
        {
            
        }
    }
    /// <summary>
    /// 执行没有返回值的SQL语句
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public static bool ExecuteSql(string sql)
    {
         SqlConnection conn = ConnectionFactory.newInstances();
         bool flag =false;
         try
         {
             SqlCommand cmd = new SqlCommand(sql, conn);
             if(cmd.ExecuteNonQuery()>=0)            
                 flag=true;

         }
         catch
         {
             
             return false;
         }
         finally
         {
             conn.Close();
         }
         return flag;
    } --------------------编程问答-------------------- 莫非是配置文件的问题? --------------------编程问答-------------------- 登录提示什么,什么现象 --------------------编程问答-------------------- 就是提示用户名密码错误,也即是islogin返回false。但一直好好好,过段时间就出现这个问题,不知道是配置文件问题还是IIS配置问题。

引用 3 楼 peng_bin1989 的回复:
登录提示什么,什么现象
--------------------编程问答-------------------- 我个人推测,是你数据库链接池链接数达到了最大值,这可能是因为你的数据库链接有的没有关闭的原因
例如        catch
          {
              
              return false;
          }
          finally
          {
              conn.Close();
          }
return后数据库链接就一直保持了
如果不是这个原因catch中记录一下异常,为什么会返回false,你得先弄清楚这个,肯定就是抛异常了,抓到异常后不要放过,要记录一下 --------------------编程问答-------------------- IIS么?使用一段时间form或者ajax功能就挂了是吧,
你可以尝试下回收应用程序池,再登陆.
如果你可以通过回收应用程序池解决,有以下方法完美解决:
设置你的IIS应用程序池的内存限制.(IIS7)
如果是IIS6,你可以查看下,好像是直接设置网站的内存限制的

给个IIS7的图
是在应用程序池的高级设置中的.
--------------------编程问答-------------------- 你这个程序存在典型的SQL注入漏洞,不是商业项目吧???
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,