public async Task LoggingInAsync(string userName, Action <string, string> reportError) { if (_reCaptchaService.IsThisARobot()) { await _reCaptchaService.ValidateCaptchaAsync(reportError); } }
public async Task OnResultExecutionAsync(ResultExecutingContext filterContext, ResultExecutionDelegate next) { if (!(filterContext.Result is ViewResult || filterContext.Result is PageResult) || !String.Equals("OrchardCore.Users", Convert.ToString(filterContext.RouteData.Values["area"]), StringComparison.OrdinalIgnoreCase)) { await next(); return; } var settings = (await _siteService.GetSiteSettingsAsync()).As <ReCaptchaSettings>(); if (!settings.IsValid()) { await next(); return; } dynamic layout = await _layoutAccessor.GetLayoutAsync(); var afterLoginZone = layout.Zones["AfterLogin"]; if (_reCaptchaService.IsThisARobot()) { afterLoginZone.Add(await _shapeFactory.New.ReCaptcha()); } var afterForgotPassword = layout.Zones["AfterForgotPassword"]; afterForgotPassword.Add(await _shapeFactory.New.ReCaptcha()); var afterRegister = layout.Zones["AfterRegister"]; afterRegister.Add(await _shapeFactory.New.ReCaptcha()); var afterResetPassword = layout.Zones["AfterResetPassword"]; afterResetPassword.Add(await _shapeFactory.New.ReCaptcha()); await next(); return; }