-1

学校のウェブサイト用にVLEシステムを作成する必要があるプロジェクトを行っています。私はビジュアルWeb開発者2008、C#およびSQLデータベースを使用しています。私がする必要があるのは、学生が自分のユーザー名とパスワードを使用してログインするときに、データベースから特定の情報(SQLのコース名、学生ID、電子メール、名前など)を表示する必要があることです。ログインページを作成しました。

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString);
    con.Open();
    string cmdStr = "select count (*) from Registration where UserName ='" + TextBox1.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 ='" + TextBox1.Text + "'";
        SqlCommand pass = new SqlCommand(cmdStr2, con);
        String password = pass.ExecuteScalar().ToString();
        con.Close();

        if (password == TextBox2.Text)
        {
            Session["New"] = TextBox1.Text;
            Response.Redirect("secure.aspx");
        }
        else
        {
            Label1.Visible = true;
            Label1.Text = "Invalid Password....!!!";
        }
    }
    else
    {
        Label1.Visible = true;
        Label1.Text = "Invalid UserName....!!!";
    }
}
4

2 に答える 2

1

ユーザー名を取得したら、データセットに移動してそのユーザーに関するすべての詳細を取得し、それに応じてsecure.aspxに表示できます。

アドバイス:SQLクエリを直接使用しないでください(SQLインジェクションに対して脆弱です)。ストアドプロシージャを使用する必要があります。また、パスワードをプレーンテキストで保存しないでください。同じデータに対して2回データを取得するのはなぜですか。

于 2012-06-15T16:11:29.527 に答える
0

これですべての問題が解決するわけではありませんが、この記事を読みます

http://www.codehighstreet.com/Articles/overview_of_membership_and_installing_sql_membership_provider-part_1/overview_of_membership_and_installing_sql_membership_provider-part_1.aspx

現在のユーザー名とパスワードのソリューションは、現在パスワードをプレーンテキストとして保存しているため、まったく安全ではありません。この記事では、ユーザー名とパスワードのデータベースをインストールしてセットアップし、認証を処理するいくつかのコントロールを使用する方法について説明します。

于 2012-06-15T14:36:39.987 に答える