私はVisual Studio 2010でWebアプリケーションを開発し、このアプリケーションにユーザーログインシステムを追加しようとしています。これまでは、ユーザー名に関連付けられているパスワードと一致していても、すべてのパスワードが間違っているとプログラムから通知されているため、ユーザーのパスワードの検証に問題があります。問題がある場合の最初の部分であることを示しているユーザログインシステムでパスワードを発行します。 C#
protected void n_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
string cmdStr = "select count(*) from Registration where UserName='" + TextBoxUserName.Text + "'";
SqlCommand CheckUser = new SqlCommand(cmdStr, con);
int Temp = Convert.ToInt32(CheckUser.ExecuteScalar().ToString());
if (Temp == 1)
{
string cmdStr2 = "Select Password from Registration where UserName ='" + TextBoxUserName.Text + "'";
SqlCommand pass = new SqlCommand(cmdStr2, con);
string password = pass.ExecuteScalar().ToString();
con.Close();
if (password == TextBoxPassword.Text)
{
Session["New"] = TextBoxUserName.Text;
Response.Redirect("HomePage.aspx");
}
else
{
Label1.Visible = true;
Label1.Text = "Password is invalid";
}
}
else
{
Label1.Visible = true;
Label1.Text = "Username is invalid";
}
}
}
}
は関係なく、どのようなパスワードの入力されたプログラムを出力するであろう「パスワードが無効です」:これは私がこれまで息子を書いたコードですステートメント?またはそれが使用する変数? 無効なユーザー名が同じようにフラグを立てても、うまく動作することに言及する価値があります。
ありがとうございます。
SQLインジェクションをチェックしてください。 – empi
あなたのパスワードは、データベースで塩漬けされ、ハッシュされる必要があります。パスワードをプレーンテキストに保存しないでください。 – zimdanen
あなたはこれまでのところ、信じられないほど安全ではないように見えます。 Googleの "SQLインジェクション攻撃"は、私が何を意味するかを確認する。 – ken