代码
给你两个提示:

1)客户端检查:因为页面刷新window内置对象是会被销毁并且重建的,利用这个原理我们可以写出类似的代码:

<div id="test">
<script type="text/javascript">
document.write(
""+(window.name==""?"":"已经不是")+"第一次开这个窗口!");
window.name
="blueidea";
</script>
</div>

你设置一个全局变量什么的,检查频繁刷新的次数(比如超过5次被认为恶意刷新)。

2)服务器端的方法:

首先建立一个继承PAGE的类

using System;

namespace YZS.Web.UI
{
public class Page : System.Web.UI.Page
{
   
private bool _refreshState;
   
private bool _isRefresh;

   
public bool IsRefresh
   {
    
get
    {
     
return _isRefresh;
    }
   }

   
protected override void LoadViewState(object savedState)
   {
    
object[] allStates = (object[]) savedState;
    
base.LoadViewState(allStates[0]);
    _refreshState 
= (bool) allStates[1];
    _isRefresh 
= _refreshState == (bool) Session["__ISREFRESH"];
   }

   
protected override object SaveViewState()
   {
    Session[
"__ISREFRESH"= _refreshState;
    
object[] allStates = new object[2];
    allStates[
0= base.SaveViewState();
    allStates[
1= !_refreshState;
    
return allStates;
   }
}
}

在页面类从public 
class MYtest : YZS.Web.UI.Page继承,然后在页面中可通过调用

if(IsRefresh)
     
//刷新
else

您可以自行修改代码,计数控制是否恶意刷新。

 

相关文章: