-4

私はコードを書いています:

string query = "Select * from AdminLogin where username='" + name + 
               "' and password='" +   password + "'";

DataSet ds = BusinessLogic.returnDataSet(query);
foreach (DataRow dr in ds.Tables[0].Rows)
{
    if (dr[0].ToString() == name && dr[1].ToString() == password)
    {
      Response.Redirect("~/Home.aspx");
    }
    else
    {
      //Here I want to write the code that will open a message box 
      //that will tell to user that username and password does not match.
     }
}
4

4 に答える 4

1

メッセージ ボックスとは、javascript アラートのことだと思います。私は、javascript 関数を使って投稿するのが好きではありません。私はそれが面倒だと思います.javascriptはクライアント側のアクションを扱う場合にのみ使用する必要があります.

実際には、これにはプレースホルダーとリテラル コントロールを使用することをお勧めします。Webフォームに次のものを含めることができます。

<asp:placeholder id="phLoginFailed" runat="server" visible="false">
     <div class="loginfailed">
        Login failed
     </div>
</asp:placeholder>

このプレースホルダーは、ポップアップのようにスタイルを設定したり、CSS を使用してページ内に表示したりできます。

次に、C# を次のように変更します。

else
{
    phLoginFailed.Visible = true;
}

また、言及する価値があるのは、SQLクエリがSQLインジェクションの傾向があることです。パラメータ化されたクエリを使用する必要があります。

また、パスワードをデータベースに保存するときは、セキュリティ上の目的でパスワードを暗号化する必要があります。

于 2012-08-09T11:24:09.403 に答える
0
ClientScript.RegisterClientScriptBlock(Page.GetType(),"key", "alert('Wrong username or password')", true);

または、ページスコープ外で使用されている場合

        Page page = (HttpContext.Current.Handler as Page);
        if (page!=null)
        {
            page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "key", "alert('Wrong username or password')", true);
        }
于 2012-08-09T11:29:13.337 に答える
0

メッセージを表示したい場所にこの行を書くだけです

this.Page.RegisterClientScriptBlock(Page.GetType(),"key", "alert('Wrong username or password')",true);

編集されたコード

 if (dr[0].ToString() == name && dr[1].ToString() == password)
     {
       Response.Redirect("~/Home.aspx");
     }
     else
     {
         this.Page.RegisterClientScriptBlock(Page.GetType(),"key", "alert('Wrong username or password')",true);

       //Here I want to write the code that will open a message box
        //that will tell to user that username and password does not match.
      }
于 2012-08-09T11:25:26.533 に答える
0

これは思ったほど簡単ではありません。基本的に、次の 2 つのオプションがあります。

于 2012-08-09T11:24:59.177 に答える