DevRainSolutions.KyivSmartCity.New.Models.SpamProtectionAttribute.OnAuthorization C# (CSharp) Method

OnAuthorization() public method

Called when a process requests authorization.
public OnAuthorization ( System.Web.Mvc.AuthorizationContext filterContext ) : void
filterContext System.Web.Mvc.AuthorizationContext The filter context.
return void
        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()));
            }
        }