asp.net网站防恶意刷新的Cookies与Session解决方法
本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧。分享给大家供大家参考。具体实现方法如下:
Session版实现方法:
publicdoubletime;
publicconstintfreetime=1;//防刷冰冻时间间隔,当前为1秒
#region防恶意刷新
if(Session.SessionID==null)
{
Response.End();
}
elseif(Session["sionid"]==null)
{
Session["sionid"]=Session.SessionID;
}
if(Session["last"]==null)
{
Session["last"]=DateTime.Now;
}
else
{
DateTimethisTime=DateTime.Now;
DateTimelastTime=DateTime.Parse(Session["last"].ToString());
if(Session.SessionID==Session["sionid"].ToString())
Session["last"]=thisTime;
TimeSpants=thisTime-lastTime;
time=ts.TotalMilliseconds;
if(time<freetime*500)
{
warm_prompt();
}
}
#endregion
publicvoidwarm_prompt()
{
Response.Write("<tablewidth='778'border='0'align='center'cellpadding='3'cellspacing='2'bgcolor='#009900'style='font-size:14px;'>");
Response.Write("<trbgcolor='#FFFFFF'>");
Response.Write("<td><imgsrc='/newimages/logos.gif'></td>");
Response.Write("<tdbgcolor='#EEFFEE'为了保证您的访问安全,请您"+freetime+"秒后<ahref='"+Request.RawUrl+"'target='_self'style='color:#FF0000;'>点击这里刷新</a>此页面</td>");
Response.Write("</tr>");
Response.Write("</table>");
Response.End();
}
Cookies版实现方法:
publicdoubletime;
publicconstintfreetime=2;
#region防恶意刷新
stringpage;
if(Request.Cookies["page"]==null)
{
page="";
}
else
{
page=HttpContext.Current.Request.Cookies["page"].Value.ToString();//获取cookie中存储的url值
}
stringstrThisPage=HttpContext.Current.Request.Url.PathAndQuery.ToString();//获取当前页地址
DateTimeLastTime=DateTime.Now;
if(page.Equals(strThisPage))//如果cookie中的值和当前页相等,那么表示是刷新操作
{
TimeSpants=LastTime-DateTime.Parse(HttpContext.Current.Request.Cookies["time"].Value.ToString());
time=ts.Seconds;
if(time<freetime)
{
warm_prompt();
}
}
else
{
//执行操作
Response.Cookies["page"].Value=strThisPage;
Response.Cookies["time"].Value=LastTime.ToString();
}
#endregion
publicvoidwarm_prompt()
{
Response.Write("<tablewidth='778'border='0'align='center'cellpadding='3'cellspacing='2'bgcolor='#009900'style='font-size:14px;'>");
Response.Write("<trbgcolor='#FFFFFF'>");
Response.Write("<td><imgsrc='/newimages/logos.gif'></td>");
Response.Write("<tdbgcolor='#EEFFEE'为了保证您的访问安全,页面将在2秒后将自动跳转到您要访问的内容!</td>");
Response.Write("</tr>");
Response.Write("</table>");
Response.Write("<metahttp-equiv=\"refresh\"content=\"2\";URL="+HttpContext.Current.Request.Cookies["page"].Value.ToString()+">");
Response.End();
}
相信本文所述对大家的asp.net程序设计有一定的借鉴价值。