2011-10-13 82 views
1

如果按钮点击3次,我想执行一些操作。就像用户输入3次错误的密码一样,页面必须被重定向到另一页面或其他页面。如果按钮点击3次,请执行操作

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

回答

0

我会使用会话变量。

另一种解决办法是具有名为LoginAttempt(INT)(默认为0)的用户表中的列,我将如何使用该列

假设你有一个表,你databese与这些列称为向tblUsers

  1. 标识,
  2. 用户名,
  3. 密码,
  4. LoginAttempt。

而且假设你有你的Login.aspx页面

  1. TextBoxUserName两个文本框,
  2. TextBoxPassword

比方说,你在你向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.Passwordohnedich但是TextBox.Passwordduhast。这表示登录不成功,因此您将虚假设置为bool login

其他一切属于下面的代码与if-else条件

if(user.LoginAttempt < 3){ 

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

这里是什么'user'和'login'? –

+0

@KarsM我加了一些解释,让我知道你是否需要更多的帮助。好运。 – Bastardo

1

要检查用户是否采取了行动狐狸“x”次,你需要存储它somehwere。如果你使用的是关系数据库,你可以调用一个LoginAttempts表,在那里你存储所有unsuccesfull登录。当你有这张桌子时,你可以根据它建立你的逻辑。

+0

+1 - 这是ASP成员是怎么做的。 –

+0

这是真的......他可能只是使用默认的提供者。 –

0

多解:

1)会话变量(好的溶液)

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

3)DB记录字段(最佳溶液)

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

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

+1

不要使用静态变量来存储登录尝试的次数 - 一个值将被所有用户共享! –

+0

不要使用cookie,什么阻止用户在尝试之间删除该cookie! –

+0

@Hans - 大声笑...也许我应该在不安全和安全的做法中加入免责声明。 –