.net 新闻点击量修改,避免恶意刷新


DataTable dt = bll.GetNewsByID(id);//根据ID获取的新闻详细内容 if (dt != null && dt.Rows.Count > 0) { //点击量修改的方案 string title = dt.Rows[0]["title"].ToString(); //判断是否存在 cookie HttpCookie cookie = context.Request.Cookies["NewsTitle"]; if (cookie == null) { //新建一个cookie cookie = new HttpCookie("NewsTitle"); cookie.Value = title; cookie.Expires.AddHours(1); context.Response.Cookies.Add(cookie); bll.UpdClicks(id); //修改读取到的数据里面的点击量 +1 dt.Rows[0]["clickNum"] = Convert.ToInt32(dt.Rows[0]["clickNum"]) + 1; } else { //判断cookie 的值是否是当前新闻的标题,如果不是,则没有访问过,点击量加1 if (cookie.Value != title) { bll.UpdClicks(id); //修改读取到的数据里面的点击量 +1 dt.Rows[0]["clickNum"] = Convert.ToInt32(dt.Rows[0]["clickNum"]) + 1; cookie.Value = title; context.Response.Cookies.Add(cookie); } } res.State = APIState.OK; res.Data = dt; }

  我这里主要使用cookie的方式来实现这样一个新闻点击后计数加1,这样的方式其实是有一定的BUG的,应为这里记下的是用户最近一次访问的新闻标题,那么如果用户在几个新闻之间切换的话,那么还是不能避免恶意计数的!

转载于:https://www.cnblogs.com/yougmi/p/4229305.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值