-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。

我实际上建议为此使用占位符和文字控件。您的网络表单中可能包含以下内容:

<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

这并不像听起来那么容易。基本上,您有两种选择:

  • 将一些 JavaScript 发送到调用 JavaScript方法的客户端(例如,使用RegisterClientScriptBlock )。alert(...);

  • 或者,使用“看起来像”弹出窗口的 ASP.NET 组件。一个示例是 ASP.NET Ajax Control Toolkit 中的ModalPopup 组件

于 2012-08-09T11:24:59.177 回答
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
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 回答