asp.net如何统计button的单击次数
我想在登录页面上做出登录限制,如果连续输入3次密码错误,就限制登录或者就让输入验证码再登录
可是我怎么也获取不到button的单击次数
网上很多都是说,定义全局或局部变量,然后再++。
这些我都试过了,不行!!!
不知哪位高手能给个可行的源码!!
谢谢!!!
[解决办法]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public static int number = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
number = 0;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (number < 3)
{
if ( TextBox1.Text.ToString().Trim() == "admin")
{
Response.Write("您已经成功登录!");
}
else
{
number += 1;
}
}
else
{
Response.Write("您登录失败的次数太多,不能在登录了!");
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" Text="请输入用户名!"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server" Text="请输入密码!"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
[解决办法]
用Session记录就行了:
一开始:Session["密码输错次数"]=0;
单击按钮后判断密码错误:
int 密码输错次数=(int)Session["密码输错次数"]+1;
if(密码输错次数==3)
//显示验证码等。
else
Session["密码输错次数"]=密码输错次数;
[解决办法]
Response.Cookies.Add(any);
}
else //如果计数器已经存在 就在原来基础上加 1
{
int count = Convert.ToInt32(Request.Cookies["loginCount"].Value) + 1;
Response.Cookies["loginCount"].Value = count.ToString();
//Response.Cookies["loginCount"].Value = (Convert.ToInt32(Request.Cookies["loginCount"].Value) + 1).ToString();
}
Response.Cookies["loginCount"].Expires = DateTime.Now.AddDays(1);
Response.Write(Request.Cookies["loginCount"].Value + "<br/>");
[解决办法]
参考:
http://www.cnblogs.com/insus/archive/2012/02/08/2342161.html
[解决办法]
正如上面说的 可以用session 去解决。在页面没关闭时 服的值 都在的。如果3次内 登录成功 你就将session 清空即可 这样做相当简单 而且方便的了
[解决办法]
一般情况下要想用户3 次密码错误后锁定账户一定时间,应该在数据库的用户表里专门设一个字段为错误记数,
点击后密码不对,该字段+1 ,密码成功,字段清0
使用session和cookies的方法,都很容易破解。
其实session就是全局变量的一种特殊运用!
[解决办法]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Load3Close
{
public partial class Form1 : Form
{
//记录窗体加载次数
public int sum;
/// <summary>
/// 表示登陆失败的次数
/// </summary>
public int Sum
{
get { return sum; }
set { sum = value; }
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text=="123"&&textBox2.Text=="123")
{
MessageBox.Show("登陆成功!");
}
else
{
sum++;
if (sum < 3)
MessageBox.Show("登陆失败!");
else
{
MessageBox.Show("对不起你输入的次数一到三次,请确定后在输入!");
this.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}