![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
给你两个提示:
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
您可以自行修改代码,计数控制是否恶意刷新。
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
您可以自行修改代码,计数控制是否恶意刷新。