回答
我会使用会话变量。
另一种解决办法是具有名为LoginAttempt(INT)(默认为0)的用户表中的列,我将如何使用该列
假设你有一个表,你databese与这些列称为向tblUsers
- 标识,
- 用户名,
- 密码,
- LoginAttempt。
而且假设你有你的Login.aspx页面
TextBoxUserName
两个文本框,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.Password
和TextBoxPassword.Text
与上述例子不符,因为
user.Password
是ohnedich
但是TextBox.Password
是duhast
。这表示登录不成功,因此您将虚假设置为bool login
。
其他一切属于下面的代码与if-else
条件
if(user.LoginAttempt < 3){
if(!login)
{
user.LoginAttempt = user.LoginAttempt + 1;
}
else
{
user.LoginAttempt = 0;
}
}
else
{
//do something
}
要检查用户是否采取了行动狐狸“x”次,你需要存储它somehwere。如果你使用的是关系数据库,你可以调用一个LoginAttempts表,在那里你存储所有unsuccesfull登录。当你有这张桌子时,你可以根据它建立你的逻辑。
+1 - 这是ASP成员是怎么做的。 –
这是真的......他可能只是使用默认的提供者。 –
多解:
1)会话变量(好的溶液)
2)静态类变量(不是一个好的解决方案)
3)DB记录字段(最佳溶液)
4)在视图和控制器之间来回传递标志变量(不是一个很好的想法)。
5)浏览器cookie(可以清除)
不要使用静态变量来存储登录尝试的次数 - 一个值将被所有用户共享! –
不要使用cookie,什么阻止用户在尝试之间删除该cookie! –
@Hans - 大声笑...也许我应该在不安全和安全的做法中加入免责声明。 –
- 1. 创建一个按钮来执行两次点击操作
- 2. 如果每次用户点击按钮
- 3. 执行按钮与点击
- 4. 当用户点击输入时执行操作/按钮
- 5. 仅在点击两个按钮时才执行操作
- 6. 当点击输入按钮,执行操作
- 7. 如果保存操作按钮被点击的jqGrid
- 8. 如何在Java中再次单击按钮时执行第二个操作?
- 9. Jquery:如果选中了单选按钮A,请执行此操作。如果B是检查,做到这一点
- 10. 如何等待按钮单击后执行操作?
- 11. 只要单击按钮,如何执行操作?
- 12. 如果重复点击按钮,防止执行UIButton的IBAction
- 13. 防止onblur代码执行,如果点击提交按钮
- 14. 按钮点击时的切换操作
- 15. 特定按钮点击后的操作
- 16. 如何在用户点击Objective C中的myLocation按钮时执行操作?
- 17. 如何通过点击另一个按钮java执行按钮?
- 18. 按钮点击点击事件两次
- 19. 再次点击按钮点击
- 20. 在Android SDK中执行点击按钮
- 21. Jquery函数执行与按钮点击
- 22. 执行按钮Python脚本点击
- 23. 点击次数按钮
- 24. 按钮点击两次
- 25. 第一次点击按钮
- 26. HTML一次点击按钮
- 27. 通过点击重复执行操作
- 28. 对链接点击执行操作
- 29. jQuery对第二次点击执行不同的操作?
- 30. AngularJS需要2次点击才能执行搜索操作
这里是什么'user'和'login'? –
@KarsM我加了一些解释,让我知道你是否需要更多的帮助。好运。 – Bastardo