elderado
جمعه 17 شهریور 1391, 07:34 صبح
با سلام به همه ی مهندسین عزیز
دوستان من توی یه تکه کد که کار لاگین رو انجام میده برای امنیت یک تایمر گذاشتم که با هر سه بار اشتباه زدن یوزر نیم و پسورد دکمه ی لاگین رو به یه مدت خاص غیر فعال میکنه
این کد برای بار اول کار میکنه و مشکلی نداره
اما برای بار دوم ثانیه ها 2 تا 2 تا زیاد میشن
نمیدونم مشکل کار کجاست
لطفا راهنمایی کنید
ممنونم
اینم کد:
int wrongcount = 0, delaytime = 6,i=3;
private void btn_loginn_Click(object sender, EventArgs e)
{
DataTable p = new DataTable();
DataTable s = new DataTable();
s = bl.bl.select("select user_name from users where user_name =N'" + txt_usr.Text + "'");
p = bl.bl.select("select user_pass from users where user_pass=N'" + txt_pass.Text + "' and user_name=N'"+txt_usr.Text+"'");
try
{
if (s.Rows[0]["user_name"].ToString() == txt_usr.Text)
{
if (p.Rows[0]["user_pass"].ToString() == txt_pass.Text)
{
if (bl.bl.select("select user_state from users where user_name=N'" + txt_usr.Text + "'").Rows[0][0].ToString() == "فعال")
{
frm_main.role = (bl.bl.select("select user_role from users where user_name=N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0]["user_role"].ToString());
this.Hide();
frm_main.user_id = Convert.ToInt32(bl.bl.select("select user_id from users where user_name =N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0][0].ToString());
frm_main f = new frm_main();
f.Show();
}
else { MessageBox.Show("نام کاربری غیر فعال شده است ، با مدیریت تماس بگیرید"); }
}
}
}
catch
{
wrongcount++;
if (wrongcount >= 50)
{
MessageBox.Show("نرم افزار غیر فعال شده است، با پشتیبانی تماس بگیرید، 09398541092 ");
bl.bl.ginsert("update users set user_state=N'غیرفعال'");
}
else if (wrongcount == i)
{
MessageBox.Show("شما به تعداد " + wrongcount + " ورود اشتباه داشته اید، لطفا " + delaytime + " ثانیه صبر کنید");
tm.Tick += new EventHandler(tm_Tick);
tm.Interval = 1000;
tm.Enabled = true;
tm.Start();
i += 3;
}
else { MessageBox.Show("نام کاربری یا رمز عبور اشتباه است"); }
}
}
int sec = 0;
void tm_Tick(object sender, EventArgs e)
{
sec++;
label1.Text = sec.ToString();
if (sec < delaytime)
{
btn_loginn.Enabled = false;
}
else
{
tm.Stop();
btn_loginn.Enabled = true;
sec = 0;
delaytime *= 6;
}
}
دوستان من توی یه تکه کد که کار لاگین رو انجام میده برای امنیت یک تایمر گذاشتم که با هر سه بار اشتباه زدن یوزر نیم و پسورد دکمه ی لاگین رو به یه مدت خاص غیر فعال میکنه
این کد برای بار اول کار میکنه و مشکلی نداره
اما برای بار دوم ثانیه ها 2 تا 2 تا زیاد میشن
نمیدونم مشکل کار کجاست
لطفا راهنمایی کنید
ممنونم
اینم کد:
int wrongcount = 0, delaytime = 6,i=3;
private void btn_loginn_Click(object sender, EventArgs e)
{
DataTable p = new DataTable();
DataTable s = new DataTable();
s = bl.bl.select("select user_name from users where user_name =N'" + txt_usr.Text + "'");
p = bl.bl.select("select user_pass from users where user_pass=N'" + txt_pass.Text + "' and user_name=N'"+txt_usr.Text+"'");
try
{
if (s.Rows[0]["user_name"].ToString() == txt_usr.Text)
{
if (p.Rows[0]["user_pass"].ToString() == txt_pass.Text)
{
if (bl.bl.select("select user_state from users where user_name=N'" + txt_usr.Text + "'").Rows[0][0].ToString() == "فعال")
{
frm_main.role = (bl.bl.select("select user_role from users where user_name=N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0]["user_role"].ToString());
this.Hide();
frm_main.user_id = Convert.ToInt32(bl.bl.select("select user_id from users where user_name =N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0][0].ToString());
frm_main f = new frm_main();
f.Show();
}
else { MessageBox.Show("نام کاربری غیر فعال شده است ، با مدیریت تماس بگیرید"); }
}
}
}
catch
{
wrongcount++;
if (wrongcount >= 50)
{
MessageBox.Show("نرم افزار غیر فعال شده است، با پشتیبانی تماس بگیرید، 09398541092 ");
bl.bl.ginsert("update users set user_state=N'غیرفعال'");
}
else if (wrongcount == i)
{
MessageBox.Show("شما به تعداد " + wrongcount + " ورود اشتباه داشته اید، لطفا " + delaytime + " ثانیه صبر کنید");
tm.Tick += new EventHandler(tm_Tick);
tm.Interval = 1000;
tm.Enabled = true;
tm.Start();
i += 3;
}
else { MessageBox.Show("نام کاربری یا رمز عبور اشتباه است"); }
}
}
int sec = 0;
void tm_Tick(object sender, EventArgs e)
{
sec++;
label1.Text = sec.ToString();
if (sec < delaytime)
{
btn_loginn.Enabled = false;
}
else
{
tm.Stop();
btn_loginn.Enabled = true;
sec = 0;
delaytime *= 6;
}
}