using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class RequestCounter
{
private static Dictionary<string, RequestCounter> Counters = new Dictionary<string, RequestCounter>();
public const int MaxRequestCount = 3;
public const int ResetSeconds = 2;
public int CurrentCount { get;
private set; }
public string UserID { get; set; }
private DateTime LastResetTime;
public bool AddCount()
{
DateTime now = DateTime.Now;
if ((now - LastResetTime).Seconds >= ResetSeconds)
{
this.CurrentCount = 0;
this.LastResetTime = now;
}
this.CurrentCount++;
if (this.CurrentCount <= MaxRequestCount)
return true;
else
return false;
}
public static RequestCounter GetCounter(string userID)
{
if (Counters.ContainsKey(userID))
return Counters[userID];
else
{
Counters[userID] = new RequestCounter();
return Counters[userID];
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class RequestCounter
{
private static Dictionary<string, RequestCounter> Counters = new Dictionary<string, RequestCounter>();
public const int MaxRequestCount = 3;
public const int ResetSeconds = 2;
public int CurrentCount { get;
private set; }
public string UserID { get; set; }
private DateTime LastResetTime;
public bool AddCount()
{
DateTime now = DateTime.Now;
if ((now - LastResetTime).Seconds >= ResetSeconds)
{
this.CurrentCount = 0;
this.LastResetTime = now;
}
this.CurrentCount++;
if (this.CurrentCount <= MaxRequestCount)
return true;
else
return false;
}
public static RequestCounter GetCounter(string userID)
{
if (Counters.ContainsKey(userID))
return Counters[userID];
else
{
Counters[userID] = new RequestCounter();
return Counters[userID];
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RequestCounter counter = RequestCounter.GetCounter("xhan");
bool canAccess = counter.AddCount();
Response.Write(canAccess);
Response.Write(counter.CurrentCount);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RequestCounter counter = RequestCounter.GetCounter("xhan");
bool canAccess = counter.AddCount();
Response.Write(canAccess);
Response.Write(counter.CurrentCount);
}
}
}