zoukankan      html  css  js  c++  java
  • .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的,应为这里记下的是用户最近一次访问的新闻标题,那么如果用户在几个新闻之间切换的话,那么还是不能避免恶意计数的!

  • 相关阅读:
    MVC NonAction属性
    未将对象引用设置到对象的实例
    回调函数callback
    Json详解
    浅谈HTTP中Get与Post的区别
    JQuery $.ajax()方法详解
    C#中Const和Readonly的区别
    全面解释StringBuilder、StringBuffer和String的关系
    基本数据类型的包装类和随机数
    枚举类的使用
  • 原文地址:https://www.cnblogs.com/yougmi/p/4229305.html
Copyright © 2011-2022 走看看