日期:2014-05-19  浏览次数:20478 次

限制用户登陆验证次数
如何做呢
代码如下   声明一个变量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里面就太复杂了