读书人

asp.net怎么统计button的单击次数

发布时间: 2012-09-16 17:33:17 作者: rapoo

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["密码输错次数"]=密码输错次数;

[解决办法]

探讨

用Session记录就行了:
一开始:Session["密码输错次数"]=0;

单击按钮后判断密码错误:

int 密码输错次数=(int)Session["密码输错次数"]+1;
if(密码输错次数==3)
//显示验证码等。
else
Session["密码输错次数"]=密码输错次数;

[解决办法]
探讨
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
{……

[解决办法]
用session记录,每次点击登陆,记录一次,验证session来区别是否超过登陆限制
[解决办法]
你的button是用的什么,input 还是asp.net 服务器控件?
1.用session方式 记录登录次数,用取模运算,余数为0表示已登录三次了,
2.用cookie本地记录
3.登录次数放在数据库中也可以
具体楼主自己看着用
[解决办法]
if (Request.Cookies["loginCount"] == null) //第一次登录的时候就判断 计数器是否存在
{
HttpCookie any = new HttpCookie("loginCount"); ;
Response.Cookies["loginCount"].Value = "1"; //如果不存在 就初始化一个 为1 表示登录了一次
Response.Cookies["loginCount"].Expires = DateTime.Now.AddDays(1); //计数器在一天后失效


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();
}
}
}

读书人网 >asp.net

热点推荐