Позвольте мне предисловие: я студент, это проект для класса, и я примерно перевел кодирование от своих преподавателей Visual Basi c в C#, мой код из моего кода ниже.
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
SqlConnection conUser = new SqlConnection(ConfigurationManager.ConnectionStrings["COP2823ConnectionString"].ToString());
SqlCommand cmdUser = new SqlCommand();
string strSQL;
SqlDataReader dtrUser;
DateTime timestamp = new DateTime();
strSQL = "select * FROM students WHERE studentid=@studentid AND courseid=@courseid AND password=@pwd";
cmdUser.CommandType = System.Data.CommandType.Text;
cmdUser.CommandText = strSQL;
cmdUser.Parameters.Add("@studentid", System.Data.SqlDbType.VarChar).Value = Login1.UserName;
cmdUser.Parameters.Add("@courseid", System.Data.SqlDbType.VarChar).Value = "COP2823";
cmdUser.Parameters.Add("@pwd", System.Data.SqlDbType.VarChar).Value = Login1.Password;
conUser.Open();
cmdUser.Connection = conUser;
dtrUser = cmdUser.ExecuteReader();
if (dtrUser.HasRows)
{
dtrUser.Read();
HttpContext.Current.Session["sid"] = dtrUser["studentid"];
HttpContext.Current.Session["fname"] = dtrUser["first"];
HttpContext.Current.Session["lname"] = dtrUser["last"];
HttpContext.Current.Session["ulevel"] = dtrUser["userlevel"];
HttpContext.Current.Session["email"] = dtrUser["email"];
HttpContext.Current.Session["course"] = "COP2823";
dtrUser.Close();
conUser.Close();
strSQL = "UPDATE students SET lastlogin=@lastlogin WHERE studentid=@user2";
cmdUser.CommandType = System.Data.CommandType.Text;
cmdUser.CommandText = strSQL;
timestamp = DateTime.Now;
cmdUser.Parameters.Add("@user2", System.Data.SqlDbType.VarChar).Value = Login1.UserName;
cmdUser.Parameters.Add("@lastlogin", System.Data.SqlDbType.VarChar).Value = timestamp.ToString();
conUser.Open();
cmdUser.Connection = conUser;
dtrUser = cmdUser.ExecuteReader();
dtrUser.Close();
conUser.Close();
}
dtrUser.Close();
conUser.Close();
}
protected void LoginButton_Click(object sender, EventArgs e)
{
Login1_Authenticate(null, null);
}
Теперь проблема, с которой я сталкиваюсь, заключается в том, что, когда я использую функцию входа в систему, я могу буквально печатать все, что захочу, и это дает мне доступ, если я нажимаю кнопку фактического входа в систему, которая говорит о неудачной регистрации. Я предполагаю, что это связано с моим
cmdUser.Parameters.Add("@studentid", System.Data.SqlDbType.VarChar).Value = Login1.UserName;
cmdUser.Parameters.Add("@courseid", System.Data.SqlDbType.VarChar).Value = "COP2823";
cmdUser.Parameters.Add("@pwd", System.Data.SqlDbType.VarChar).Value = Login1.Password;
, но я не смог найти правильного использования. Я прошу прощения, если это повторный вопрос, я уже разобрался со многими другими проблемами, касающимися базы данных, у меня есть раздел комментариев, который использует базу данных и работает просто отлично, gridView, который хорошо обращается к базе данных.