/// <summary> /// Creates an instance of the <see cref="Recaptcha2HtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> /// <param name="dataType">Sets the type of the recaptcha HTML.</param> /// <param name="dataSize">Sets the size for the recpatcha HTML.</param> /// <param name="useSsl">Determines whether to use SSL in reCAPTCHA API URLs.</param> /// <param name="withCallback">Determines if we need a callback for our reCaptcha</param> public Recaptcha2HtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex, RecaptchaDataType?dataType, RecaptchaDataSize?dataSize, SslBehavior useSsl, bool withCallback, string callBack) : base(publicKey, theme, language, tabIndex, useSsl, withCallback) { DataType = dataType; DataSize = dataSize; CallbackName = callBack; }
/// <summary> /// Renders the recaptcha HTML in an MVC view. It is an extension method to the <see cref="System.Web.Mvc.HtmlHelper"/> class. /// </summary> /// <param name="htmlHelper">The <see cref="System.Web.Mvc.HtmlHelper"/> object to which the extension is added.</param> /// <param name="publicKey">Sets the public key of recaptcha.</param> /// <param name="theme">Sets the theme of recaptcha.</param> /// <param name="language">Sets the language of recaptcha. If no language is specified, the language of the current UI culture will be used.</param> /// <param name="tabIndex">Sets the tab index of recaptcha.</param> /// <param name="dataType">Sets the data type of recaptcha.</param> /// <param name="dataSize">Sets the size of recaptcha.</param> /// <param name="useSsl">Sets the value to the UseSsl property.</param> /// <param name="apiVersion">Determines the version of the reCAPTCHA API.</param> /// <returns>Returns an instance of the IHtmlString type.</returns> public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", RecaptchaTheme theme = RecaptchaTheme.Red, string language = null, int tabIndex = 0, RecaptchaDataType? dataType = null, RecaptchaDataSize? dataSize = null, SslBehavior useSsl = SslBehavior.SameAsRequestUrl, string apiVersion = "{recaptchaApiVersion}") { IRecaptchaHtmlHelper rHtmlHelper = null; string version = RecaptchaKeyHelper.ParseKey(apiVersion); if (version != "2") { rHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex, useSsl); } else { rHtmlHelper = new Recaptcha2HtmlHelper(publicKey, theme, language, tabIndex, dataType, dataSize, useSsl); } var writer = new HtmlTextWriter(new StringWriter()); writer.Write(rHtmlHelper.ToString()); return htmlHelper.Raw(writer.InnerWriter.ToString()); }
/// <summary> /// Creates an instance of the <see cref="Recaptcha2HtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> /// <param name="dataType">Sets the type of the recaptcha HTML.</param> /// <param name="dataSize">Sets the size for the recpatcha HTML.</param> /// <param name="useSsl">Determines whether to use SSL in reCAPTCHA API URLs.</param> /// <param name="dataCallback">Sets the data-callback property of the recaptcha HTML.</param> /// <param name="dataExpiredCallback">Sets the data-expired-callback property of the recaptcha HTML.</param> public Recaptcha2HtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex, RecaptchaDataType?dataType, RecaptchaDataSize?dataSize, SslBehavior useSsl, string dataCallback, string dataExpiredCallback) : base(publicKey, theme, language, tabIndex, useSsl, dataCallback, dataExpiredCallback) { DataType = dataType; DataSize = dataSize; DataCallback = dataCallback; DataExpiredCallback = dataExpiredCallback; }
public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) : this(publicKey) { this.Language = language; #pragma warning disable 618 this.TabIndex = tabIndex; this.Theme = theme; #pragma warning restore 618 }
/// <summary> /// Creates an instance of the <see cref="RecaptchaConfiguration"/> class. /// </summary> /// <param name="siteKey">The site key.</param> /// <param name="secretKey">The secret key.</param> /// <param name="apiVersion">The API version of reCAPTCHA to be used.</param> /// <param name="theme">The color theme of the widget.</param> /// <param name="language">Forces the reCAPTCHA widget to render in a specific language. By default, the user's language is used.</param> /// <param name="size">The size of the reCAPTCHA widget.</param> /// <param name="useSsl">Determines if SSL is to be used in Google reCAPTCHA API calls.</param> /// public RecaptchaConfiguration(string siteKey, string secretKey, string apiVersion, string language = null, RecaptchaTheme theme = RecaptchaTheme.Default, RecaptchaSize size = RecaptchaSize.Default, RecaptchaSslBehavior useSsl = RecaptchaSslBehavior.AlwaysUseSsl) { SiteKey = siteKey; SecretKey = secretKey; ApiVersion = apiVersion; Language = language; Theme = theme; Size = size; UseSsl = useSsl; }
/// <summary> /// Gets the configuration from the default source. /// </summary> /// <returns>Returns configuration as an instance of the <see cref="RecaptchaConfiguration"/> class.</returns> public static RecaptchaConfiguration GetConfiguration() { string siteKey = _configuration["RecaptchaSiteKey"]; string secretKey = _configuration["RecaptchaSecretKey"]; string language = _configuration["RecaptchaLanguage"]; string apiVersion = _configuration["RecaptchaApiVersion"] ?? "2"; RecaptchaSize size = _configuration["RecaptchaSize"] == null ? RecaptchaSize.Default : Enum.Parse <RecaptchaSize>(_configuration["RecaptchaSize"]); RecaptchaTheme theme = _configuration["RecaptchaTheme"] == null ? RecaptchaTheme.Default : Enum.Parse <RecaptchaTheme>(_configuration["RecaptchaTheme"]); RecaptchaSslBehavior useSsl = _configuration["RecaptchaUseSsl"] == null ? RecaptchaSslBehavior.AlwaysUseSsl : Enum.Parse <RecaptchaSslBehavior>(_configuration["RecaptchaUseSsl"]); return(new RecaptchaConfiguration(siteKey, secretKey, apiVersion, language, theme, size, useSsl)); }
/// <summary> /// Creates an instance of the <see cref="RecaptchaHtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) { this.PublicKey = RecaptchaKeyHelper.ParseKey(publicKey); if (String.IsNullOrEmpty(this.PublicKey)) { throw new InvalidOperationException("Public key cannot be null or empty."); } this.Theme = theme; this.Language = language; this.TabIndex = tabIndex; }
/// <summary> /// Creates an instance of the <see cref="RecaptchaHtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) { this.PublicKey = RecaptchaKeyHelper.ParseKey(publicKey); if (String.IsNullOrEmpty(this.PublicKey)) { throw new InvalidOperationException("Public key cannot be null or empty."); } this.Theme = theme; this.Language = language; this.TabIndex = tabIndex; UseSsl = HttpContext.Current.Request.IsSecureConnection; }
/// <summary> /// Creates an instance of the <see cref="RecaptchaHtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) { this.PublicKey = RecaptchaKeyHelper.ParseKey(publicKey); if (String.IsNullOrEmpty(this.PublicKey)) { throw new InvalidOperationException("Public key cannot be null or empty."); } this.Theme = theme; this.Language = language; this.TabIndex = tabIndex; UseSsl = HttpContext.Current.Request.Url.AbsoluteUri.StartsWith("https"); }
/// <summary> /// Renders the recaptcha HTML in an MVC view. It is an extension method to the <see cref="System.Web.Mvc.HtmlHelper"/> class. /// </summary> /// <param name="htmlHelper">The <see cref="System.Web.Mvc.HtmlHelper"/> object to which the extension is added.</param> /// <param name="publicKey">Sets the public key of recaptcha.</param> /// <param name="theme">Sets the theme of recaptcha.</param> /// <param name="language">Sets the language of recaptcha. If no language is specified, the language of the current UI culture will be used.</param> /// <param name="tabIndex">Sets the tab index of recaptcha.</param> /// <param name="useSsl">Sets the value to the UseSsl property.</param> /// <returns>Returns an instance of the IHtmlString type.</returns> public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", RecaptchaTheme theme = RecaptchaTheme.Red, string language = null, int tabIndex = 0, bool useSsl = false) { RecaptchaHtmlHelper rHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex, useSsl); HtmlTextWriter writer = new HtmlTextWriter(new StringWriter()); writer.Write(rHtmlHelper.ToString()); return htmlHelper.Raw(writer.InnerWriter.ToString()); }
/// <summary> /// Renders the recaptcha HTML in an MVC view. It is an extension method to the <see cref="System.Web.Mvc.HtmlHelper"/> class. /// </summary> /// <param name="htmlHelper">The <see cref="System.Web.Mvc.HtmlHelper"/> object to which the extension is added.</param> /// <param name="publicKey">Sets the public key of recaptcha.</param> /// <param name="theme">Sets the theme of recaptcha.</param> /// <param name="language">Sets the language of recaptcha. If no language is specified, the language of the current UI culture will be used.</param> /// <param name="tabIndex">Sets the tab index of recaptcha.</param> /// <param name="useSsl">Sets the value to the UseSsl property.</param> /// <returns>Returns an instance of the IHtmlString type.</returns> public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", RecaptchaTheme theme = RecaptchaTheme.Red, string language = null, int tabIndex = 0, bool useSsl = false) { RecaptchaHtmlHelper rHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex); HtmlTextWriter writer = new HtmlTextWriter(new StringWriter()); writer.Write(rHtmlHelper.ToString()); return(htmlHelper.Raw(writer.InnerWriter.ToString())); }
/// <summary> /// Gets the configuration from the default source. /// </summary> /// <returns>Returns configuration as an instance of the <see cref="RecaptchaConfiguration"/> class.</returns> public static RecaptchaConfiguration GetConfiguration() { string siteKey = null, secretKey = null, language = null, apiVersion = "2"; RecaptchaSize size = RecaptchaSize.Default; RecaptchaTheme theme = RecaptchaTheme.Default; RecaptchaSslBehavior useSsl = RecaptchaSslBehavior.AlwaysUseSsl; if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaSiteKey")) { siteKey = ConfigurationManager.AppSettings["RecaptchaSiteKey"]; } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaSecretKey")) { secretKey = ConfigurationManager.AppSettings["RecaptchaSecretKey"]; } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaApiVersion")) { apiVersion = ConfigurationManager.AppSettings["RecaptchaApiVersion"]; } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaLanguage")) { language = ConfigurationManager.AppSettings["RecaptchaLanguage"]; } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaTheme")) { Enum.TryParse <RecaptchaTheme>(ConfigurationManager.AppSettings["RecaptchaTheme"], out theme); } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaSize")) { Enum.TryParse <RecaptchaSize>(ConfigurationManager.AppSettings["RecaptchaSize"], out size); } if (ConfigurationManager.AppSettings.AllKeys.Contains("RecaptchaUseSsl")) { Enum.TryParse <RecaptchaSslBehavior>(ConfigurationManager.AppSettings["RecaptchaUseSsl"], out useSsl); } return(new RecaptchaConfiguration(siteKey, secretKey, apiVersion, language, theme, size, useSsl)); }
/// <summary> /// Creates the reCAPTCHA HTML that needs to be rendered. /// </summary> /// <param name="renderApiScript">Determines if the API script is to be rendered.</param> /// <param name="theme">The color theme of the widget.</param> /// <param name="language">Forces the reCAPTCHA widget to render in a specific language. By default, the user's language is used.</param> /// <param name="tabIndex">The tabindex of the reCAPTCHA widget.</param> /// <param name="size">The size of the reCAPTCHA widget.</param> /// <param name="useSsl">Determines if SSL is to be used in Google reCAPTCHA API calls.</param> /// <returns>Returns the reCAPTCHA HTML as an instance of the <see cref="string"/> type.</returns> public string CreateWidgetHtml(bool renderApiScript, RecaptchaTheme theme, string language, int tabIndex, RecaptchaSize size, RecaptchaSslBehavior useSsl) { var dictAttributes = new Dictionary <string, string> { { "data-" + PARAM_SITEKEY, SiteKey } }; if (theme != RecaptchaTheme.Default) { dictAttributes.Add("data-" + PARAM_THEME, theme.ToString().ToLower()); } if (tabIndex != 0) { dictAttributes.Add("data-" + PARAM_TABINDEX, tabIndex.ToString()); } if (size != RecaptchaSize.Default) { dictAttributes.Add("data-" + PARAM_SIZE, size.ToString().ToLower()); } var sbAttributes = new StringBuilder(); foreach (var key in dictAttributes.Keys) { sbAttributes.Append($"{key}=\"{dictAttributes[key]}\" "); } StringBuilder sbHtml = new StringBuilder(); if (renderApiScript) { sbHtml.Append(CreateApiScripttHtml(language, useSsl)); } sbHtml.Append($"<div class=\"g-recaptcha\" {sbAttributes.ToString()}></div>"); return(sbHtml.ToString()); }
public static IHtmlString Recaptcha( this HtmlHelper htmlHelper, string publicKey = "{recaptchaPublicKey}", #pragma warning disable 618 RecaptchaTheme theme = RecaptchaTheme.Red, #pragma warning restore 618 string language = null, int tabIndex = 0, bool useSsl = false) { var recaptchaHtmlHelper = new RecaptchaHtmlHelper(publicKey, theme, language, tabIndex); using (var stringWriter = new StringWriter()) { using (var htmlWriter = new HtmlTextWriter(stringWriter)) { recaptchaHtmlHelper.Render(htmlWriter); } return(new MvcHtmlString(stringWriter.ToString())); } }
/// <summary> /// Creates an instance of the <see cref="RecaptchaHtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> /// <param name="useSsl">Determines whether to use SSL in reCAPTCHA API URLs.</param> public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex, SslBehavior useSsl) : base(publicKey, theme, language, tabIndex, useSsl) { }
/// <summary> /// Creates an instance of the <see cref="Recaptcha2HtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> public Recaptcha2HtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) : base(publicKey, theme, language, tabIndex) { DataType = null; DataSize = null; }
/// <summary> /// Creates an instance of the <see cref="Recaptcha2HtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> /// <param name="dataType">Sets the type of the recaptcha HTML.</param> /// <param name="dataSize">Sets the size for the recpatcha HTML.</param> /// <param name="useSsl">Determines whether to use SSL in reCAPTCHA API URLs.</param> public Recaptcha2HtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex, RecaptchaDataType?dataType, RecaptchaDataSize?dataSize, SslBehavior useSsl) : base(publicKey, theme, language, tabIndex, useSsl) { DataType = dataType; DataSize = dataSize; }
/// <summary> /// Creates an instance of the <see cref="Recaptcha2HtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> /// <param name="dataType">Sets the type of the recaptcha HTML.</param> /// <param name="dataSize">Sets the size for the recpatcha HTML.</param> /// <param name="useSsl">Determines whether to use SSL in reCAPTCHA API URLs.</param> public Recaptcha2HtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex, RecaptchaDataType? dataType, RecaptchaDataSize? dataSize, SslBehavior useSsl) : base(publicKey, theme, language, tabIndex, useSsl) { DataType = dataType; DataSize = dataSize; }
/// <summary> /// Creates an instance of the <see cref="RecaptchaHtmlHelper"/> class. /// </summary> /// <param name="publicKey">Sets the public key of the recaptcha HTML.</param> /// <param name="theme">Sets the theme of the recaptcha HTML.</param> /// <param name="language">Sets the language of the recaptcha HTML.</param> /// <param name="tabIndex">Sets the tab index of the recaptcha HTML.</param> public RecaptchaHtmlHelper(string publicKey, RecaptchaTheme theme, string language, int tabIndex) : base(publicKey, theme, language, tabIndex) { }