使用一段时间后,正确的用户名密码也不能登录,服务器重启又好了
使用一段时间后,正确的用户名密码也不能登录,服务器重启又好了。登录页面代码:
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配置问题。
--------------------编程问答-------------------- 我个人推测,是你数据库链接池链接数达到了最大值,这可能是因为你的数据库链接有的没有关闭的原因
例如 catch
{
return false;
}
finally
{
conn.Close();
}
return后数据库链接就一直保持了
如果不是这个原因catch中记录一下异常,为什么会返回false,你得先弄清楚这个,肯定就是抛异常了,抓到异常后不要放过,要记录一下 --------------------编程问答-------------------- IIS么?使用一段时间form或者ajax功能就挂了是吧,
你可以尝试下回收应用程序池,再登陆.
如果你可以通过回收应用程序池解决,有以下方法完美解决:
设置你的IIS应用程序池的内存限制.(IIS7)
如果是IIS6,你可以查看下,好像是直接设置网站的内存限制的
给个IIS7的图
是在应用程序池的高级设置中的.
--------------------编程问答-------------------- 你这个程序存在典型的SQL注入漏洞,不是商业项目吧???
补充:.NET技术 , ASP.NET