如果按钮单击3次,请执行操作

时间:2011-10-13 06:02:49

标签: asp.net

如果点击按钮3次,我想做一些动作。就像用户输入错误的密码3次页面一样,页面必须重定向到另一个页面或其他内容。

如果第三次点击按钮,如何在ASP.NET C#中执行操作?

3 个答案:

答案 0 :(得分:1)

要检查用户是否已执行“x”次动作,您需要将其保存一段时间。如果你正在使用关系数据库,你可以调用一个表LoginAttempts,然后存储所有unsucfulfull登录。拥有该表时,您可以根据它构建逻辑。

答案 1 :(得分:0)

多种解决方案:

1)会话变量(Okay solution)

2)静态类变量(不是一个好的解决方案)

3)DB记录字段(最佳解决方案)

4)在视图和控制器之间来回传递标志变量(不是一个好主意)。

5)浏览器cookie(可以清除)

答案 2 :(得分:0)

我会使用会话变量。

另一个解决方案可能是在users表中有一个名为LoginAttempt(int)的列(默认为0),我将如何使用该列

假设您的数据库中有一个名为TblUsers的表,其中包含这些列

  1. 标识,
  2. 用户名,
  3. 密码,
  4. LoginAttempt。
  5. 让我们假设您在Login.aspx页面上有两个TextBox;

    1. TextBoxUserName
    2. TextBoxPassword
    3. 假设你的TblUsers中有一条记录就像这样

      Id           : 1
      UserName     : rammstein
      Password     : ohnedich
      LoginAttempt : 0
      

      现在,您使用的是Login.aspx.cs代码

      你有一个方法,你有

      TblUsers user = new TblUsers();
      

      你有bool login = false;。 您已获得TextBoxUserName.Text的用户名,检查是否存在具有此用户名的用户,如果存在,则执行以下代码。

      让我们关注这个场景

      给定用户尝试使用

      登录
      UserName:rammstein 
      Password:duhast
      

      使用用户名rammstein检查您的数据库并找到它,然后在TblpUsers user中取出该记录,然后检查user.PasswordTextBoxPassword.Text是否匹配。它与上述内容不匹配例子是因为

      user.PasswordohnedichTextBox.Passwordduhast。这意味着登录失败,因此您将false设置为bool login

      其他所有内容都属于以下代码if-else条件

      if(user.LoginAttempt < 3){
      
            if(!login)
            {
                user.LoginAttempt = user.LoginAttempt + 1;
            }
            else
            {
                user.LoginAttempt = 0;
            }
      }
      else
      {
        //do something
      }