如何从C#中的数据库中获取用户名和密码?

Sid*_*qui 4 .net c# t-sql asp.net sql-injection

我的活动中有以下代码btn_click:

Sqlconnection con = new Sqlconnection("server=.;database=bss;user id=ab;pwd=ab");
con.open();
SqlCommand cmd = new Sqlcommand("select * from login where username='" 
+ txt4name.Text + "' and pwd='" + txt4pwd.Text + "'", con);

SqlDataReader reader = cmd.execute Reader();
Run Code Online (Sandbox Code Playgroud)

login桌子在哪里username,pwd是它的领域.在此代码之后,所有值都存储在reader对象中.我想存储usernamepwd单独的变量.

我怎么能做到这一点?

GEO*_*HET 12

通常,在访问数据库时,您应该使用与此类似的东西来消除SQL注入漏洞:

using (SqlCommand myCommand = new SqlCommand("SELECT * FROM USERS WHERE USERNAME=@username AND PASSWORD=HASHBYTES('SHA1', @password)", myConnection))
    {                    
        myCommand.Parameters.AddWithValue("@username", user);
        myCommand.Parameters.AddWithValue("@password", pass);

        myConnection.Open();
        SqlDataReader myReader = myCommand.ExecuteReader())
        ...................
    }
Run Code Online (Sandbox Code Playgroud)

但更真实地存储凭据,您应该使用诸如Membership系统之类的东西,而不是滚动自己的.


cco*_*ook 7

你正在冒着sql注入的巨大风险. 将SQL参数用于SqlCommands中的值.