我正試圖從Web窗體連接到SQL Server,但在代碼中獲取不正確的語法異常。連接代碼中的異常
保護無效的button1_Click(對象發件人,EventArgs的) {
SqlConnection的CN =新的SqlConnection(ConfigurationManager.ConnectionStrings [ 「HRMSConnectionString1」]的ToString());
{
SqlCommand cmd = new SqlCommand("select * from persons where User_Id="+uid.Text+"and Password!="+pswd.Text, cn);
cn.Open();
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //exception in this line
rdr.Read();
Response.Write(rdr[0].ToString());
}
}
請指引我這裏m走錯了。
有些事情,你需要知道的是[SQL注入](HTTP。: //en.wikipedia.org/wi ki/SQL_Injection)你的代碼容易受到這種類型的攻擊,因此根本就不安全。一旦你的代碼工作,嘗試輸入這個密碼:''OR 1 = 1 - '。在評論中討論太複雜,但查看[SQLCommand](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx)對象並進行一些閱讀。在你完成之前,你絕對不應該在任何實際的系統中使用這個代碼。 – Basic 2011-04-25 12:21:27
此外,您將密碼存儲在「純文本」中,這意味着您和任何進入數據庫的人都可以讀取每個用戶的完整密碼 - 不安全。有關更多信息,請參閱[本文](http://www.4guysfromrolla.com/articles/103002-1.aspx)以獲取該主題的介紹 – Basic 2011-04-25 12:24:27