public void OnAuthorization(AuthorizationContext filterContext)
{
long timestamp = long.MaxValue;
var request = filterContext.RequestContext.HttpContext.Request;
if (long.TryParse(request.Form["SpamProtectionTimeStamp"], out timestamp))
{
long currentTime = (long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds;
if (currentTime <= timestamp + this.Timespan)
{
throw new HttpException(string.Format("Invalid form submission. At least {0} seconds have to pass before form submission ({1}).", this.Timespan, request.Params.ToString()));
}
}
else
{
throw new HttpException("Invalid form submission. Invalid timestamp parameter.");
}
if (!string.IsNullOrEmpty(request.Form["website"]))
{
throw new HttpException(string.Format("Invalid form submission.", request.Form["website"], request.Params.ToString()));
}
}