vahidth
جمعه 08 دی 1391, 18:20 عصر
سلام دوستان
من یه دیتابیس ساختم با دو فیلد username و password از نوع nvarchar[50] حالا دو تا فرم ساختم در فرم اولم کد ورود رو به این صورت به کمک یکی از دوستان اینجوری نوشتم ولی ارور میگیره از
int cn = (int)com.ExecuteScalar();
اینم از کدها
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace project_login
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\vorod.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
public Form1()
{
InitializeComponent();
}
private void btnlogin_Click(object sender, EventArgs e)
{
if (txtusername.Text == "" && txtpassword.Text == "")
{
MessageBox.Show("پیغام", "لطفا فیلدها را کامل کنید این فیلدها نمی تواند خالی باشد", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
}
else
{
SqlCommand com = new SqlCommand("select count(username) from table where username='" + txtusername.Text + "' and password='" + txtpassword.Text + "'", con);
con.Open();
int cn = (int)com.ExecuteScalar();
con.Close();
if (cn > 0)
{
Form2 main = new Form2();
main.Show();
this.Hide();
}
else
{
com.CommandText = "select * from table";
SqlDataReader dr;
con.Open();
dr = com.ExecuteReader();
dr.Read();
int un = Convert.ToInt32(dr["uncorrect"].ToString());
con.Close();
un++;
com.CommandText = ("update table set uncorrect='" + un + "'");
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("نام کاربری یا رمز عبور اشتباه می باشد", "نادرست", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtusername.Text = "";
txtpassword.Text = "";
txtusername.Focus();
}
}
}
}
}
ایا این روش امن هست یعنی امنیتش زیاده یا نه؟
من یه دیتابیس ساختم با دو فیلد username و password از نوع nvarchar[50] حالا دو تا فرم ساختم در فرم اولم کد ورود رو به این صورت به کمک یکی از دوستان اینجوری نوشتم ولی ارور میگیره از
int cn = (int)com.ExecuteScalar();
اینم از کدها
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace project_login
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\vorod.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
public Form1()
{
InitializeComponent();
}
private void btnlogin_Click(object sender, EventArgs e)
{
if (txtusername.Text == "" && txtpassword.Text == "")
{
MessageBox.Show("پیغام", "لطفا فیلدها را کامل کنید این فیلدها نمی تواند خالی باشد", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
}
else
{
SqlCommand com = new SqlCommand("select count(username) from table where username='" + txtusername.Text + "' and password='" + txtpassword.Text + "'", con);
con.Open();
int cn = (int)com.ExecuteScalar();
con.Close();
if (cn > 0)
{
Form2 main = new Form2();
main.Show();
this.Hide();
}
else
{
com.CommandText = "select * from table";
SqlDataReader dr;
con.Open();
dr = com.ExecuteReader();
dr.Read();
int un = Convert.ToInt32(dr["uncorrect"].ToString());
con.Close();
un++;
com.CommandText = ("update table set uncorrect='" + un + "'");
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("نام کاربری یا رمز عبور اشتباه می باشد", "نادرست", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtusername.Text = "";
txtpassword.Text = "";
txtusername.Focus();
}
}
}
}
}
ایا این روش امن هست یعنی امنیتش زیاده یا نه؟