示例#1
0
        /// <summary>
        /// Generate reCAPTCHA Control
        /// </summary>
        /// <param name="helper">HTML helper</param>
        /// <returns>Result</returns>
        public static IHtmlContent GenerateCaptcha(this IHtmlHelper helper)
        {
            var captchaSettings = EngineContext.Current.Resolve <CaptchaSettings>();
            var workContext     = EngineContext.Current.Resolve <IWorkContext>();

            var lang = captchaSettings.ReCaptchaDefaultLanguage;

            if (captchaSettings.AutomaticallyChooseLanguage)
            {
                //this list got from this site: https://developers.google.com/recaptcha/docs/language, but we use languages only with two letters in the code
                var supportedLanguageCodes = new List <string> {
                    "af", "am", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "es", "et", "eu", "fa", "fi", "fil", "fr", "gl", "gu", "hi", "hr", "hu", "hy", "id", "is", "it", "iw", "ja", "ka", "kn", "ko", "lo", "lt", "lv", "ml", "mn", "mr", "ms", "nl", "no", "pl", "pt", "ro", "ru", "si", "sk", "sl", "sr", "sv", "sw", "ta", "te", "th", "tr", "uk", "ur", "vi", "zu"
                };

                var twoLetterIsoCode = workContext.WorkingLanguage?.GetTwoLetterIsoLanguageName().ToLower() ?? string.Empty;

                lang = supportedLanguageCodes.Contains(twoLetterIsoCode) ? twoLetterIsoCode : lang;
            }

            //generate captcha control
            var captchaControl = new GRecaptchaControl
            {
                Theme     = captchaSettings.ReCaptchaTheme,
                Id        = "recaptcha",
                PublicKey = captchaSettings.ReCaptchaPublicKey,
                Language  = lang
            };

            return(new HtmlString(captchaControl.RenderControl()));
        }
示例#2
0
        public static string GenerateCaptcha(this HtmlHelper helper)
        {
            var captchaSettings = EngineContext.Current.Resolve <CaptchaSettings>();
            var htmlWriter      = new HtmlTextWriter(new StringWriter());
            var captchaControl  = new GRecaptchaControl(captchaSettings.ReCaptchaVersion)
            {
                Theme     = captchaSettings.ReCaptchaTheme,
                Id        = "recaptcha",
                PublicKey = captchaSettings.ReCaptchaPublicKey,
                Language  = captchaSettings.ReCaptchaLanguage
            };

            captchaControl.RenderControl(htmlWriter);
            return(htmlWriter.InnerWriter.ToString());
        }
示例#3
0
        /// <summary>
        /// Generate reCAPTCHA
        /// </summary>
        /// <param name="helper">HTML helper</param>
        /// <returns>Result</returns>
        public static IHtmlContent GenerateCaptcha(this IHtmlHelper helper)
        {
            var captchaSettings = EngineContext.Current.Resolve <CaptchaSettings>();

            var captchaControl = new GRecaptchaControl(captchaSettings.ReCaptchaVersion)
            {
                Theme     = captchaSettings.ReCaptchaTheme,
                Id        = "recaptcha",
                PublicKey = captchaSettings.ReCaptchaPublicKey,
                Language  = captchaSettings.ReCaptchaLanguage
            };
            var captchaControlHtml = captchaControl.RenderControl();

            return(new HtmlString(captchaControlHtml));
        }
示例#4
0
        public static string GenerateCaptcha(this HtmlHelper helper)
        {
            var captchaSettings = EngineContext.Current.Resolve<CaptchaSettings>();
            var htmlWriter = new HtmlTextWriter(new StringWriter());

            var captchaControl = new GRecaptchaControl(captchaSettings.ReCaptchaVersion)
            {
                Theme = captchaSettings.ReCaptchaTheme,
                Id = "recaptcha",
                PublicKey = captchaSettings.ReCaptchaPublicKey,
                Language = captchaSettings.ReCaptchaLanguage
            };
            captchaControl.RenderControl(htmlWriter);

            return htmlWriter.InnerWriter.ToString();
        }