手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net网站防恶意刷新的Cookies与Session解决方法
asp.net网站防恶意刷新的Cookies与Session解决方法
摘要:本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧。分享给大家供大家参考。...

本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧。分享给大家供大家参考。具体实现方法如下:

Session版实现方法:

public double time; public const int freetime = 1;//防刷冰冻时间间隔,当前为1秒 #region 防恶意刷新 if (Session.SessionID == null) { Response.End(); } else if (Session["sionid"] == null) { Session["sionid"] = Session.SessionID; } if (Session["last"] == null) { Session["last"] = DateTime.Now; } else { DateTime thisTime = DateTime.Now; DateTime lastTime = DateTime.Parse(Session["last"].ToString()); if (Session.SessionID == Session["sionid"].ToString()) Session["last"] = thisTime; TimeSpan ts = thisTime - lastTime; time = ts.TotalMilliseconds; if (time < freetime * 500) { warm_prompt(); } } #endregion public void warm_prompt() { Response.Write("<table width='778' border='0' align='center' cellpadding='3' cellspacing='2' bgcolor='#009900'>"); Response.Write(" <tr bgcolor='#FFFFFF'>"); Response.Write(" <td><img src='http://www.jb51.netnewimages/logos.gif'></td>"); Response.Write(" <td bgcolor='#EEFFEE'为了保证您的访问安全,请您 " + freetime + " 秒后<a href='" + Request.RawUrl + "' target='_self'>点击这里刷新</a>此页面</td>"); Response.Write(" </tr>"); Response.Write("</table>"); Response.End(); }

Cookies版实现方法:

public double time; public const int freetime = 2; #region 防恶意刷新 string page; if (Request.Cookies["page"] == null) { page = ""; } else { page = HttpContext.Current.Request.Cookies["page"].Value.ToString(); //获取cookie中存储的url值 } string strThisPage = HttpContext.Current.Request.Url.PathAndQuery.ToString();//获取当前页地址 DateTime LastTime = DateTime.Now; if (page.Equals(strThisPage))//如果cookie中的值和当前页相等,那么表示是刷新操作 { TimeSpan ts = 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 public void warm_prompt() { Response.Write("<table width='778' border='0' align='center' cellpadding='3' cellspacing='2' bgcolor='#009900'>"); Response.Write(" <tr bgcolor='#FFFFFF'>"); Response.Write(" <td><img src='http://www.jb51.netnewimages/logos.gif'></td>"); Response.Write(" <td bgcolor='#EEFFEE'为了保证您的访问安全,页面将在2秒后将自动跳转到您要访问的内容!</td>"); Response.Write(" </tr>"); Response.Write("</table>"); Response.Write("<meta http-equiv="refresh" content="2";URL=" + HttpContext.Current.Request.Cookies["page"].Value.ToString() + ">"); Response.End(); }

相信本文所述对大家的asp.net程序设计有一定的借鉴价值。

【asp.net网站防恶意刷新的Cookies与Session解决方法】相关文章:

asp.net动态载入用户控件的方法

asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法

ASP.NET 用户多次登录的解决方法

将Asp.Net网站发布到IIS的四种方法

asp.net在后端动态添加样式表调用的方法

asp.net中使用cookie传递参数的方法

asp.net 2.0多语言网站解决方法

asp.net 上传大文件解决方案

asp.net C#检查URL是否有效的方法

ASP.Net中防止刷新自动触发事件的解决方案

精品推荐
分类导航