public override void OnActionExecuting(ActionExecutingContext filterContext) { bool valid = false; var captchaChallengeValue = filterContext.HttpContext.Request.Form[CHALLENGE_FIELD_KEY]; var captchaResponseValue = filterContext.HttpContext.Request.Form[RESPONSE_FIELD_KEY]; var gCaptchaResponseValue = filterContext.HttpContext.Request.Form[G_RESPONSE_FIELD_KEY]; if ((!string.IsNullOrEmpty(captchaChallengeValue) && !string.IsNullOrEmpty(captchaResponseValue)) || !string.IsNullOrEmpty(gCaptchaResponseValue)) { var captchaSettings = EngineContext.Current.Resolve<CaptchaSettings>(); if (captchaSettings.Enabled) { var captchaValidtor = new GReCaptchaValidator(captchaSettings.ReCaptchaVersion) { SecretKey = captchaSettings.ReCaptchaPrivateKey, RemoteIp = filterContext.HttpContext.Request.UserHostAddress, Response = captchaResponseValue ?? gCaptchaResponseValue, Challenge = captchaChallengeValue }; var recaptchaResponse = captchaValidtor.Validate(); valid = recaptchaResponse.IsValid; } } //this will push the result value into a parameter in our Action filterContext.ActionParameters["captchaValid"] = valid; base.OnActionExecuting(filterContext); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { bool valid = false; var captchaChallengeValue = filterContext.HttpContext.Request.Form[CHALLENGE_FIELD_KEY]; var captchaResponseValue = filterContext.HttpContext.Request.Form[RESPONSE_FIELD_KEY]; var gCaptchaResponseValue = filterContext.HttpContext.Request.Form[G_RESPONSE_FIELD_KEY]; if ((!string.IsNullOrEmpty(captchaChallengeValue) && !string.IsNullOrEmpty(captchaResponseValue)) || !string.IsNullOrEmpty(gCaptchaResponseValue)) { var captchaSettings = EngineContext.Current.Resolve <CaptchaSettings>(); if (captchaSettings.Enabled) { var captchaValidtor = new GReCaptchaValidator(captchaSettings.ReCaptchaVersion) { SecretKey = captchaSettings.ReCaptchaPrivateKey, RemoteIp = filterContext.HttpContext.Request.UserHostAddress, Response = captchaResponseValue ?? gCaptchaResponseValue, Challenge = captchaChallengeValue }; var recaptchaResponse = captchaValidtor.Validate(); valid = recaptchaResponse.IsValid; } } //this will push the result value into a parameter in our Action filterContext.ActionParameters["captchaValid"] = valid; base.OnActionExecuting(filterContext); }