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程序设计有一定的借鉴价值。