示例#1
0
        /// <summary>
        /// Adds captcha to the container's control collection.
        /// </summary>
        /// <param name="container">The control that will contain the Captcha.</param>
        /// <param name="controlID">The id of the CaptchaControl.</param>
        /// <param name="validationGroup">The name of the group of controls that is validated on validation.</param>
        /// <param name="renderScript">bool tell if scripts need to rendered or not.</param>
        /// <returns>IValidator control which the rad captcha control</returns>
        public static IValidator RenderCaptcha(Control container, String controlID, String validationGroup, bool renderScript = false)
        {
#if TELERIKWEBUI
            var radCaptcha = new Telerik.Web.UI.RadCaptcha
            {
                ID = string.IsNullOrWhiteSpace(controlID) ? DefaultControlID : controlID,
                ValidationGroup            = validationGroup,
                ErrorMessage               = ErrorMessage,
                Display                    = ValidatorDisplay.None,
                EnableRefreshImage         = true,
                OnClientLoad               = "radcaptcha.onClientLoad",
                CaptchaTextBoxLabel        = ResourceManager.GetString("CaptchaTextBoxLabel"),
                CaptchaAudioLinkButtonText = ResourceManager.GetString("CaptchaAudioLinkButtonText"),
                CaptchaLinkButtonText      = ResourceManager.GetString("CaptchaLinkButtonText"),
                EnableDownloadAudio        = false
            };

            radCaptcha.CaptchaImage.EnableCaptchaAudio = true;
            radCaptcha.CaptchaImage.AudioFilesPath     = AudioFilesPath;

            container.Controls.Add(radCaptcha);

            if (container.Page != null && renderScript)
            {
                RenderRadCaptchaScript(container.Page);
            }


            return(radCaptcha);
#else
            ADXTrace.Instance.TraceWarning(TraceCategory.Application, "Captcha is enabled; however, Telerik.Web.UI.dll could not be found.");
            return(null);
#endif
        }
示例#2
0
        private void PopulateControls()
        {
            if (siteSettings == null)
            {
                return;
            }
            if (siteSettings.DisableDbAuth)
            {
                this.Visible = false; return;
            }

            LoginCtrl.SetRedirectUrl = true;

            txtUserName   = (TextBox)this.LoginCtrl.FindControl("UserName");
            txtPassword   = (TextBox)this.LoginCtrl.FindControl("Password");
            chkRememberMe = (CheckBox)this.LoginCtrl.FindControl("RememberMe");
            lnkRecovery   = (HyperLink)this.LoginCtrl.FindControl("lnkPasswordRecovery");
            divCaptcha    = (Panel)LoginCtrl.FindControl("divCaptcha");
            captcha       = (Telerik.Web.UI.RadCaptcha)LoginCtrl.FindControl("captcha");
            btnLogin      = (Button)this.LoginCtrl.FindControl("Login");

            if (!siteSettings.RequireCaptchaOnLogin)
            {
                if (divCaptcha != null)
                {
                    divCaptcha.Visible = false;
                }
                if (captcha != null)
                {
                    captcha.Enabled = false;
                }
            }

            if (lnkRecovery.Visible)
            {
                lnkRecovery.Visible = ((siteSettings.AllowPasswordRetrieval || siteSettings.AllowPasswordReset) && (!siteSettings.UseLdapAuth ||
                                                                                                                    (siteSettings.UseLdapAuth && siteSettings.AllowDbFallbackWithLdap)));
                lnkRecovery.NavigateUrl = this.LoginCtrl.PasswordRecoveryUrl;
            }

            if (chkRememberMe.Visible)
            {
                chkRememberMe.Visible = siteSettings.AllowPersistentLogin;
            }
        }
示例#3
0
        private void PopulateControls()
        {
            if (siteSettings == null)
            {
                return;
            }
            if (siteSettings.DisableDbAuth)
            {
                this.Visible = false; return;
            }

            LoginCtrl.SetRedirectUrl = setRedirectUrl;

            lblUserID     = (SiteLabel)this.LoginCtrl.FindControl("lblUserID");
            lblEmail      = (SiteLabel)this.LoginCtrl.FindControl("lblEmail");
            txtUserName   = (TextBox)this.LoginCtrl.FindControl("UserName");
            txtPassword   = (TextBox)this.LoginCtrl.FindControl("Password");
            chkRememberMe = (CheckBox)this.LoginCtrl.FindControl("RememberMe");
            btnLogin      = (Button)this.LoginCtrl.FindControl("Login");
            lnkRecovery   = (HyperLink)this.LoginCtrl.FindControl("lnkPasswordRecovery");
            lnkExtraLink  = (HyperLink)this.LoginCtrl.FindControl("lnkRegisterExtraLink");

            divCaptcha = (Panel)LoginCtrl.FindControl("divCaptcha");
            captcha    = (Telerik.Web.UI.RadCaptcha)LoginCtrl.FindControl("captcha");
            if (!siteSettings.RequireCaptchaOnLogin)
            {
                if (divCaptcha != null)
                {
                    divCaptcha.Visible = false;
                }
                if (captcha != null)
                {
                    captcha.Enabled = false;
                }
            }
            //else
            //{
            //    captcha.ProviderName = siteSettings.CaptchaProvider;
            //    captcha.RecaptchaPrivateKey = siteSettings.RecaptchaPrivateKey;
            //    captcha.RecaptchaPublicKey = siteSettings.RecaptchaPublicKey;
            //}

            // Remove 2015-01-06
            if ((siteSettings.UseEmailForLogin) && (!siteSettings.UseLdapAuth))
            {
                if (!WebConfigSettings.AllowLoginWithUsernameWhenSiteSettingIsUseEmailForLogin)
                {
                    RegularExpressionValidator regexEmail = new RegularExpressionValidator();
                    regexEmail.ControlToValidate = txtUserName.ID;
                    regexEmail.SetFocusOnError   = true;
                    //regexEmail.ValidationExpression = @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$";
                    regexEmail.ValidationExpression = SecurityHelper.RegexEmailValidationPattern;
                    regexEmail.ErrorMessage         = Resource.LoginFailedInvalidEmailFormatMessage;
                    regexEmail.ToolTip  = Resource.LoginFailedInvalidEmailFormatMessage;
                    regexEmail.Display  = ValidatorDisplay.Dynamic;
                    regexEmail.CssClass = "alert alert-danger";
                    regexEmail.SkinID   = "LoginValidator";
                    this.LoginCtrl.Controls.Add(regexEmail);
                }
            }

            if (siteSettings.UseEmailForLogin && !siteSettings.UseLdapAuth)
            {
                this.lblUserID.Visible = false;
                this.txtUserName.Attributes.Add("placeholder", Resource.SignInEmailLabel);

                lblEnterUsernamePassword.Text = string.Format(Resource.SignInEnterUsernamePasswordFormat, Resource.SignInEmailLabel);
            }
            else
            {
                this.lblEmail.Visible = false;
                this.txtUserName.Attributes.Add("placeholder", Resource.ManageUsersLoginNameLabel);

                lblEnterUsernamePassword.Text = string.Format(Resource.SignInEnterUsernamePasswordFormat, Resource.ManageUsersLoginNameLabel);
            }
            this.txtPassword.Attributes.Add("placeholder", Resource.SignInPasswordLabel);

            if (setFocus)
            {
                txtUserName.Focus();
            }

            lnkRecovery.Visible = ((siteSettings.AllowPasswordRetrieval || siteSettings.AllowPasswordReset) && (!siteSettings.UseLdapAuth ||
                                                                                                                (siteSettings.UseLdapAuth && siteSettings.AllowDbFallbackWithLdap)));

            lnkRecovery.NavigateUrl = this.LoginCtrl.PasswordRecoveryUrl;
            lnkRecovery.Text        = this.LoginCtrl.PasswordRecoveryText;

            lnkExtraLink.NavigateUrl = siteRoot + "/Secure/Register.aspx";
            if (lnkExtraLink.Text.Length == 0)
            {
                lnkExtraLink.Text = Resource.RegisterLink;
            }
            lnkExtraLink.Visible = siteSettings.AllowNewRegistration;

            string returnUrlParam = Page.Request.Params.Get("returnurl");

            if (!String.IsNullOrEmpty(returnUrlParam))
            {
                //string redirectUrl = returnUrlParam;
                lnkExtraLink.NavigateUrl += "?returnurl=" + returnUrlParam;
            }

            chkRememberMe.Visible = siteSettings.AllowPersistentLogin;
            if (chkRememberMe.Text.Length == 0)
            {
                chkRememberMe.Text = this.LoginCtrl.RememberMeText;
            }

            btnLogin.Text = this.LoginCtrl.LoginButtonText;
            SiteUtils.SetButtonAccessKey(btnLogin, AccessKeys.LoginAccessKey);
        }