net怎样防止静态内容被刷新butto刷新页面
1个回答
2016-10-29 · 知道合伙人软件行家
关注
展开全部
public static class RefreshAction
{
// 常量
//服务端票证key
public const string LastRefreshTicketEntry = "__LASTREFRESHTICKET";
//客户端票证key
public const string CurrentRefreshTicketEntry = "__CURRENTREFRESHTICKET";
//用来保存是否是重复刷新的属性的key
public const string PageRefreshEntry = "IsPageRefresh";
private static Hashtable requestHistory = null; //存储请求历史
// 检测F5按钮是否被按下
public static void Check(HttpContext ctx)
{
//初始化服务端票证
EnsureRefreshTicket(ctx);
//从Session里读取上一次提供的票证
int lastTicket = GetLastRefreshTicket(ctx);
//从请求里的隐藏域里读取当前页面的票证
int thisTicket = GetCurrentRefreshTicket(ctx);
// 对比两个票证
if (thisTicket > lastTicket ||
(thisTicket == lastTicket && thisTicket == 0))
{
//如果当前的票证值大于上一次的票证值 或者
//当前票证值等于上一次票证值,并且当前票证值为0(这是第一次刷新)
//那么更新Session里上一次的票证值为当前票证值
UpdateLastRefreshTicket(ctx, thisTicket);
//设置当前页是否重复刷新属性为false
ctx.Items[PageRefreshEntry] = false;
}
else
{
//设置当前页是否重复刷新属性为true;
ctx.Items[PageRefreshEntry] = true;
}
}
{
// 常量
//服务端票证key
public const string LastRefreshTicketEntry = "__LASTREFRESHTICKET";
//客户端票证key
public const string CurrentRefreshTicketEntry = "__CURRENTREFRESHTICKET";
//用来保存是否是重复刷新的属性的key
public const string PageRefreshEntry = "IsPageRefresh";
private static Hashtable requestHistory = null; //存储请求历史
// 检测F5按钮是否被按下
public static void Check(HttpContext ctx)
{
//初始化服务端票证
EnsureRefreshTicket(ctx);
//从Session里读取上一次提供的票证
int lastTicket = GetLastRefreshTicket(ctx);
//从请求里的隐藏域里读取当前页面的票证
int thisTicket = GetCurrentRefreshTicket(ctx);
// 对比两个票证
if (thisTicket > lastTicket ||
(thisTicket == lastTicket && thisTicket == 0))
{
//如果当前的票证值大于上一次的票证值 或者
//当前票证值等于上一次票证值,并且当前票证值为0(这是第一次刷新)
//那么更新Session里上一次的票证值为当前票证值
UpdateLastRefreshTicket(ctx, thisTicket);
//设置当前页是否重复刷新属性为false
ctx.Items[PageRefreshEntry] = false;
}
else
{
//设置当前页是否重复刷新属性为true;
ctx.Items[PageRefreshEntry] = true;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询