62,046
社区成员
发帖
与我相关
我的任务
分享
//判断无数次刷新页面而增加的浏览次数
HttpCookie cookie=System.Web.HttpContext.Current.Request.Cookies["HttpUrl"];
if (cookie != null)
{
string url = cookie["weburl"].ToString();
if (System.Web.HttpContext.Current.Request.RawUrl != url)
{
}
}
else
{
//更新一次浏览次数
sqlt.Sys_Paras.Add("@logid", SqlDbType.Int).Value = logid;
sqlt.Operate("update game_log set logbrowse=isnull(logbrowse,0)+1 where logid =@logid");
sqlt.Sys_Paras.Clear(); sqlt.ConClose();
}
//把浏览相片的URL写入COOKIES进行判断是否对此刷新
HttpCookie cookies = new HttpCookie("HttpUrl");
cookies["weburl"] = System.Web.HttpContext.Current.Request.RawUrl;
TimeSpan ts = new TimeSpan(0, 24, 0, 0);//过期时间为1天
cookies.Expires = DateTime.Now.Add(ts);//设置过期时间
System.Web.HttpContext.Current.Response.Cookies.Add(cookies);
protected void Application_PostAcquireRequestState(Object sender, EventArgs e)
{
Queue<DateTime> clicks = Session["clicks"] as Queue<DateTime>;
if (clicks == null)
Session["clicks"] = clicks = new Queue<DateTime>();
if (clicks.Count >= 10)
{
if ((DateTime.Now - clicks.Peek()) < TimeSpan.FromSeconds(20))
{
Response.Write("刷太多了吧");
Response.End();
}
else
clicks.Dequeue();
}
clicks.Enqueue(DateTime.Now);
}
public partial class Default : BaseMasterPage
{
public bool IsBot = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["resptime"] == null)
Session["resptime"] = DateTime.Now;
}
if (CheckBot())
{
// this.Response.StatusCode = 304;
IsBot = true;
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
Server.Transfer(String.Format(Page.ResolveUrl("~/Search.aspx?act=query&query={0}"), Server.UrlEncode(txtSearch.Text.Trim())));
}
private bool CheckBot()
{
if (DateTime.Now.AddSeconds(-1) < (DateTime)Session["resptime"])
{
Session["resptime"] = DateTime.Now;
return true;
}
else
{
Session["resptime"] = DateTime.Now;
return false;
}
}
}