限制用户登陆验证次数
如何做呢
代码如下 声明一个变量i 如果输入三次用户名密码错误,则系统记录你的ip并封锁你的ip 大家能帮我看看么 这段代码老是有问题 每当登陆一次 i变成1 再登陆的时候 又变成从0开始加1
private void ImageButton2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(txtYanzheng.Text.Trim()==Session[ "CheckCode "].ToString())
{
if(i!=3)
{
string UserID = " ";
if (Page.IsValid == true)
{
WebJTJ.Components.Staff staff=new WebJTJ.Components.Staff();
string CheckString = staff.Login(txtUserName.Text, txtPassWord.Text);
if(CheckString!=null)
{
string LoginChecked;
if(CheckString.IndexOf( "- ")> =0)
{
UserID=CheckString.Substring(0,CheckString.IndexOf( "- "));
LoginChecked = CheckString.Substring(CheckString.IndexOf( "- ")+1);
if(LoginChecked== "True ")
{
Session[ "UserName "]=txtUserName.Text;
Session[ "UserID "]=UserID;
Session[ "WebManager "]=LoginChecked;
Server.Transfer( "Admin_Main.aspx ");
}
}
}
else
{
i=i+1;
lblErrorMessage.Text= "您输入的用户名或密码错误,请重新输入! ";
return ;
}
}
}
else
{
IPHostEntry IPHost=Dns.Resolve(Environment.MachineName);
if(IPHost.AddressList.Length> 0)
{
strIp=IPHost.AddressList[0].ToString();
}
lblErrorMessage.Text= "阿暗暗暗暗暗暗暗暗暗暗 ";
}
}
else
{
lblErrorMessage.Text= "您输入的验证码错误!请重新输入! ";
}
}
------解决方案--------------------顶一下吧.
------解决方案--------------------http是无状态的,变量i怎么能保存下来呢,当然会变成0了,用session来保存
------解决方案-------------------- session[ "xxx "]=convert.tostring(int)
------解决方案--------------------要对应时。。。就再反转回来int.parse(session[ "xxx "].tostring)
------解决方案--------------------int.parse(session[ "xxx "].tostring)
正解
------解决方案--------------------这个过程可以写在存储过程里面啊!
写在ASP里面就太复杂了