private void WritePasswordPanel(HtmlTextWriter writer, CreateUserWizard wizard)
        {
            TextBox textBox = wizard.FindControl("CreateUserStepContainer").FindControl("Password") as TextBox;

            if (textBox != null)
            {
                Page.ClientScript.RegisterForEventValidation(textBox.UniqueID);

                WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-PasswordPanel", "");
                Extender.WriteTextBox(writer, true, wizard.LabelStyle.CssClass, wizard.PasswordLabelText, wizard.TextBoxStyle.CssClass, "CreateUserStepContainer_Password", "");
                WebControlAdapterExtender.WriteRequiredFieldValidator(writer, wizard.FindControl("CreateUserStepContainer").FindControl("PasswordRequired") as RequiredFieldValidator, wizard.ValidatorTextStyle.CssClass, "Password", wizard.PasswordRequiredErrorMessage);
                WebControlAdapterExtender.WriteEndDiv(writer);
            }
        }
Beispiel #2
0
 private void WriteUserPanel(HtmlTextWriter writer, ChangePassword changePwd)
 {
     if (changePwd.DisplayUserName)
     {
         TextBox textbox = changePwd.ChangePasswordTemplateContainer.FindControl("UserName") as TextBox;
         if (textbox != null)
         {
             Page.ClientScript.RegisterForEventValidation(textbox.UniqueID);
             WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-UserPanel");
             Extender.WriteTextBox(writer, false, changePwd.LabelStyle.CssClass, changePwd.UserNameLabelText, changePwd.TextBoxStyle.CssClass, changePwd.ChangePasswordTemplateContainer.ID + "_UserName", changePwd.UserName);
             WebControlAdapterExtender.WriteRequiredFieldValidator(writer, changePwd.ChangePasswordTemplateContainer.FindControl("UserNameRequired") as RequiredFieldValidator, changePwd.ValidatorTextStyle.CssClass, "UserName", changePwd.UserNameRequiredErrorMessage);
             WebControlAdapterExtender.WriteEndDiv(writer);
         }
     }
 }
Beispiel #3
0
        /// <summary>
        /// Writes the submit panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="changePwd">
        /// The change PWD.
        /// </param>
        /// <remarks>
        /// </remarks>
        private void WriteSubmitPanel(HtmlTextWriter writer, ChangePassword changePwd)
        {
            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-SubmitPanel", string.Empty);

            var id = "ChangePassword";

            id += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : string.Empty;
            var idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.ChangePasswordButtonType);
            var btn        = changePwd.ChangePasswordTemplateContainer.FindControl(idWithType);

            if (btn != null)
            {
                this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID);

                var options = new PostBackOptions(
                    btn, string.Empty, string.Empty, false, false, false, true, true, changePwd.UniqueID);
                var javascript = "javascript:" + this.Page.ClientScript.GetPostBackEventReference(options);
                javascript = this.Page.Server.HtmlEncode(javascript);

                this.Extender.WriteSubmit(
                    writer,
                    changePwd.ChangePasswordButtonType,
                    changePwd.ChangePasswordButtonStyle.CssClass,
                    changePwd.ChangePasswordTemplateContainer.ID + "_" + id,
                    changePwd.ChangePasswordButtonImageUrl,
                    javascript,
                    changePwd.ChangePasswordButtonText);
            }

            id         = "Cancel";
            id        += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : string.Empty;
            idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.CancelButtonType);
            btn        = changePwd.ChangePasswordTemplateContainer.FindControl(idWithType);
            if (btn != null)
            {
                this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID);
                this.Extender.WriteSubmit(
                    writer,
                    changePwd.CancelButtonType,
                    changePwd.CancelButtonStyle.CssClass,
                    changePwd.ChangePasswordTemplateContainer.ID + "_" + id,
                    changePwd.CancelButtonImageUrl,
                    string.Empty,
                    changePwd.CancelButtonText);
            }

            WebControlAdapterExtender.WriteEndDiv(writer);
        }
 /// <summary>
 /// Writes the help panel.
 /// </summary>
 /// <param name="writer">
 /// The writer.
 /// </param>
 /// <param name="passwordRecovery">
 /// The password recovery.
 /// </param>
 /// <remarks>
 /// </remarks>
 private static void WriteHelpPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
 {
     if ((!String.IsNullOrEmpty(passwordRecovery.HelpPageIconUrl)) ||
         (!String.IsNullOrEmpty(passwordRecovery.HelpPageText)))
     {
         WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-HelpPanel", string.Empty);
         WebControlAdapterExtender.WriteImage(writer, passwordRecovery.HelpPageIconUrl, "Help");
         WebControlAdapterExtender.WriteLink(
             writer,
             passwordRecovery.HyperLinkStyle.CssClass,
             passwordRecovery.HelpPageUrl,
             "Help",
             passwordRecovery.HelpPageText);
         WebControlAdapterExtender.WriteEndDiv(writer);
     }
 }
        /////////////////////////////////////////////////////////
        // Step 3: success
        /////////////////////////////////////////////////////////

        /// <summary>
        /// Writes the success text panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="passwordRecovery">
        /// The password recovery.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteSuccessTextPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            if (String.IsNullOrEmpty(passwordRecovery.SuccessText))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(passwordRecovery.SuccessTextStyle.CssClass))
                                ? passwordRecovery.SuccessTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-PasswordRecovery-SuccessTextPanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, passwordRecovery.SuccessText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
Beispiel #6
0
        /// <summary>
        /// Writes the instruction panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="login">
        /// The login.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteInstructionPanel(HtmlTextWriter writer, Login login)
        {
            if (String.IsNullOrEmpty(login.InstructionText))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(login.InstructionTextStyle.CssClass))
                                ? login.InstructionTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-Login-InstructionPanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, login.InstructionText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
Beispiel #7
0
 /// <summary>
 /// Writes the password recovery panel.
 /// </summary>
 /// <param name="writer">
 /// The writer.
 /// </param>
 /// <param name="login">
 /// The login.
 /// </param>
 /// <remarks>
 /// </remarks>
 private static void WritePasswordRecoveryPanel(HtmlTextWriter writer, Login login)
 {
     if ((!String.IsNullOrEmpty(login.PasswordRecoveryUrl)) ||
         (!String.IsNullOrEmpty(login.PasswordRecoveryText)))
     {
         WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-PasswordRecoveryPanel", string.Empty);
         WebControlAdapterExtender.WriteImage(writer, login.PasswordRecoveryIconUrl, "Password recovery");
         WebControlAdapterExtender.WriteLink(
             writer,
             login.HyperLinkStyle.CssClass,
             login.PasswordRecoveryUrl,
             "Password recovery",
             login.PasswordRecoveryText);
         WebControlAdapterExtender.WriteEndDiv(writer);
     }
 }
        /////////////////////////////////////////////////////////
        // Complete step
        /////////////////////////////////////////////////////////

        /// <summary>
        /// Writes the success text panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="wizard">
        /// The wizard.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteSuccessTextPanel(HtmlTextWriter writer, CreateUserWizard wizard)
        {
            if (String.IsNullOrEmpty(wizard.CompleteSuccessText))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(wizard.CompleteSuccessTextStyle.CssClass))
                                ? wizard.CompleteSuccessTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-CreateUserWizard-SuccessTextPanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, wizard.CompleteSuccessText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
Beispiel #9
0
 /// <summary>
 /// Writes the remember me panel.
 /// </summary>
 /// <param name="writer">
 /// The writer.
 /// </param>
 /// <param name="login">
 /// The login.
 /// </param>
 /// <remarks>
 /// </remarks>
 private void WriteRememberMePanel(HtmlTextWriter writer, Login login)
 {
     if (login.DisplayRememberMe)
     {
         this.Page.ClientScript.RegisterForEventValidation(login.FindControl("RememberMe").UniqueID);
         WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-RememberMePanel", string.Empty);
         this.Extender.WriteCheckBox(
             writer,
             login.LabelStyle.CssClass,
             login.RememberMeText,
             login.CheckBoxStyle.CssClass,
             "RememberMe",
             login.RememberMeSet);
         WebControlAdapterExtender.WriteEndDiv(writer);
     }
 }
Beispiel #10
0
        /// <summary>
        /// Writes the success title panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="changePwd">
        /// The change PWD.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteSuccessTitlePanel(HtmlTextWriter writer, ChangePassword changePwd)
        {
            if (String.IsNullOrEmpty(changePwd.SuccessTitleText))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(changePwd.TitleTextStyle.CssClass))
                                ? changePwd.TitleTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-ChangePassword-SuccessTitlePanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, changePwd.SuccessTitleText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        /////////////////////////////////////////////////////////
        // Step 1: user name
        /////////////////////////////////////////////////////////

        /// <summary>
        /// Writes the failure panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="passwordRecovery">
        /// The password recovery.
        /// </param>
        /// <remarks>
        /// </remarks>
        private void WriteFailurePanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            if (String.IsNullOrEmpty(this.currentErrorText))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(passwordRecovery.FailureTextStyle.CssClass))
                                ? passwordRecovery.FailureTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-PasswordRecovery-FailurePanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, this.currentErrorText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        private void WriteAnswerPanel(HtmlTextWriter writer, CreateUserWizard wizard)
        {
            if ((WizardMembershipProvider != null) && WizardMembershipProvider.RequiresQuestionAndAnswer)
            {
                TextBox textBox = wizard.FindControl("CreateUserStepContainer").FindControl("Answer") as TextBox;
                if (textBox != null)
                {
                    Page.ClientScript.RegisterForEventValidation(textBox.UniqueID);

                    WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-AnswerPanel");
                    Extender.WriteTextBox(writer, false, wizard.LabelStyle.CssClass, wizard.AnswerLabelText, wizard.TextBoxStyle.CssClass, "CreateUserStepContainer_Answer", "");
                    WebControlAdapterExtender.WriteRequiredFieldValidator(writer, wizard.FindControl("CreateUserStepContainer").FindControl("AnswerRequired") as RequiredFieldValidator, wizard.ValidatorTextStyle.CssClass, "Answer", wizard.AnswerRequiredErrorMessage);
                    WebControlAdapterExtender.WriteEndDiv(writer);
                }
            }
        }
        private void WriteAnswerPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            Control container          = passwordRecovery.QuestionTemplateContainer;
            TextBox textBox            = (container != null) ? container.FindControl("Answer") as TextBox : null;
            RequiredFieldValidator rfv = (textBox != null) ? container.FindControl("AnswerRequired") as RequiredFieldValidator : null;
            string id = (rfv != null) ? container.ID + "_" + textBox.ID : "";

            if (!String.IsNullOrEmpty(id))
            {
                Page.ClientScript.RegisterForEventValidation(textBox.UniqueID);

                WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-AnswerPanel");
                Extender.WriteTextBox(writer, false, passwordRecovery.LabelStyle.CssClass, passwordRecovery.AnswerLabelText, passwordRecovery.TextBoxStyle.CssClass, id, "");
                WebControlAdapterExtender.WriteRequiredFieldValidator(writer, rfv, passwordRecovery.ValidatorTextStyle.CssClass, "Answer", passwordRecovery.AnswerRequiredErrorMessage);
                WebControlAdapterExtender.WriteEndDiv(writer);
            }
        }
Beispiel #14
0
        /// <summary>
        /// Writes the create user panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="changePwd">
        /// The change PWD.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteCreateUserPanel(HtmlTextWriter writer, ChangePassword changePwd)
        {
            if (String.IsNullOrEmpty(changePwd.CreateUserUrl) && String.IsNullOrEmpty(changePwd.CreateUserText))
            {
                return;
            }

            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-CreateUserPanel", string.Empty);
            WebControlAdapterExtender.WriteImage(writer, changePwd.CreateUserIconUrl, "Create user");
            WebControlAdapterExtender.WriteLink(
                writer,
                changePwd.HyperLinkStyle.CssClass,
                changePwd.CreateUserUrl,
                "Create user",
                changePwd.CreateUserText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        /// <summary>
        /// Writes the user panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="passwordRecovery">
        /// The password recovery.
        /// </param>
        /// <remarks>
        /// </remarks>
        private void WriteUserPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            if ((this.state == State.UserName) || (this.state == State.UserLookupError))
            {
                var container = passwordRecovery.UserNameTemplateContainer;
                var textBox   = (container != null) ? container.FindControl("UserName") as TextBox : null;
                var rfv       = (textBox != null) ? container.FindControl("UserNameRequired") as RequiredFieldValidator : null;
                var id        = (rfv != null) ? container.ID + "_" + textBox.ID : string.Empty;
                if (!String.IsNullOrEmpty(id))
                {
                    if (textBox != null)
                    {
                        this.Page.ClientScript.RegisterForEventValidation(textBox.UniqueID);
                    }

                    WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-UserName-UserPanel", string.Empty);
                    this.Extender.WriteTextBox(
                        writer,
                        false,
                        passwordRecovery.LabelStyle.CssClass,
                        passwordRecovery.UserNameLabelText,
                        passwordRecovery.TextBoxStyle.CssClass,
                        id,
                        passwordRecovery.UserName);
                    WebControlAdapterExtender.WriteRequiredFieldValidator(
                        writer,
                        rfv,
                        passwordRecovery.ValidatorTextStyle.CssClass,
                        "UserName",
                        passwordRecovery.UserNameRequiredErrorMessage);
                    WebControlAdapterExtender.WriteEndDiv(writer);
                }
            }
            else if ((this.state == State.Question) || (this.state == State.AnswerLookupError))
            {
                WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-Question-UserPanel", string.Empty);
                this.Extender.WriteReadOnlyTextBox(
                    writer,
                    passwordRecovery.LabelStyle.CssClass,
                    passwordRecovery.UserNameLabelText,
                    passwordRecovery.TextBoxStyle.CssClass,
                    passwordRecovery.UserName);
                WebControlAdapterExtender.WriteEndDiv(writer);
            }
        }
Beispiel #16
0
        private void WriteContinuePanel(HtmlTextWriter writer, ChangePassword changePwd)
        {
            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-ContinuePanel");

            string id = "Continue";

            id += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : "";
            string  idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.ContinueButtonType);
            Control btn        = changePwd.SuccessTemplateContainer.FindControl(idWithType);

            if (btn != null)
            {
                Page.ClientScript.RegisterForEventValidation(btn.UniqueID);
                Extender.WriteSubmit(writer, changePwd.ContinueButtonType, changePwd.ContinueButtonStyle.CssClass, changePwd.SuccessTemplateContainer.ID + "_" + id, changePwd.ContinueButtonImageUrl, "", changePwd.ContinueButtonText);
            }

            WebControlAdapterExtender.WriteEndDiv(writer);
        }
Beispiel #17
0
        /// <summary>
        /// Writes the password recovery panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="changePwd">
        /// The change PWD.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WritePasswordRecoveryPanel(HtmlTextWriter writer, ChangePassword changePwd)
        {
            if (String.IsNullOrEmpty(changePwd.PasswordRecoveryUrl) &&
                String.IsNullOrEmpty(changePwd.PasswordRecoveryText))
            {
                return;
            }

            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-PasswordRecoveryPanel", string.Empty);
            WebControlAdapterExtender.WriteImage(writer, changePwd.PasswordRecoveryIconUrl, "Password recovery");
            WebControlAdapterExtender.WriteLink(
                writer,
                changePwd.HyperLinkStyle.CssClass,
                changePwd.PasswordRecoveryUrl,
                "Password recovery",
                changePwd.PasswordRecoveryText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        private void WriteSubmitPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            if ((_state == State.UserName) || (_state == State.UserLookupError))
            {
                Control container = passwordRecovery.UserNameTemplateContainer;
                string  id        = (container != null) ? container.ID + "_Submit" : "Submit";

                string  idWithType = WebControlAdapterExtender.MakeIdWithButtonType("Submit", passwordRecovery.SubmitButtonType);
                Control btn        = (container != null) ? container.FindControl(idWithType) as Control : null;

                if (btn != null)
                {
                    Page.ClientScript.RegisterForEventValidation(btn.UniqueID);

                    PostBackOptions options    = new PostBackOptions(btn, "", "", false, false, false, false, true, passwordRecovery.UniqueID);
                    string          javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options);
                    javascript = Page.Server.HtmlEncode(javascript);

                    WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-UserName-SubmitPanel");
                    Extender.WriteSubmit(writer, passwordRecovery.SubmitButtonType, passwordRecovery.SubmitButtonStyle.CssClass, id, passwordRecovery.SubmitButtonImageUrl, javascript, passwordRecovery.SubmitButtonText);
                    WebControlAdapterExtender.WriteEndDiv(writer);
                }
            }
            else if ((_state == State.Question) || (_state == State.AnswerLookupError))
            {
                Control container  = passwordRecovery.QuestionTemplateContainer;
                string  id         = (container != null) ? container.ID + "_Submit" : "Submit";
                string  idWithType = WebControlAdapterExtender.MakeIdWithButtonType("Submit", passwordRecovery.SubmitButtonType);
                Control btn        = (container != null) ? container.FindControl(idWithType) as Control : null;

                if (btn != null)
                {
                    Page.ClientScript.RegisterForEventValidation(btn.UniqueID);

                    PostBackOptions options    = new PostBackOptions(btn, "", "", false, false, false, false, true, passwordRecovery.UniqueID);
                    string          javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options);
                    javascript = Page.Server.HtmlEncode(javascript);

                    WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-Question-SubmitPanel");
                    Extender.WriteSubmit(writer, passwordRecovery.SubmitButtonType, passwordRecovery.SubmitButtonStyle.CssClass, id, passwordRecovery.SubmitButtonImageUrl, javascript, passwordRecovery.SubmitButtonText);
                    WebControlAdapterExtender.WriteEndDiv(writer);
                }
            }
        }
Beispiel #19
0
 /// <summary>
 /// Writes the user panel.
 /// </summary>
 /// <param name="writer">
 /// The writer.
 /// </param>
 /// <param name="login">
 /// The login.
 /// </param>
 /// <remarks>
 /// </remarks>
 private void WriteUserPanel(HtmlTextWriter writer, Login login)
 {
     this.Page.ClientScript.RegisterForEventValidation(login.FindControl("UserName").UniqueID);
     WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-UserPanel", string.Empty);
     this.Extender.WriteTextBox(
         writer,
         false,
         login.LabelStyle.CssClass,
         login.UserNameLabelText,
         login.TextBoxStyle.CssClass,
         "UserName",
         login.UserName);
     WebControlAdapterExtender.WriteRequiredFieldValidator(
         writer,
         login.FindControl("UserNameRequired") as RequiredFieldValidator,
         login.ValidatorTextStyle.CssClass,
         "UserName",
         login.UserNameRequiredErrorMessage);
     WebControlAdapterExtender.WriteEndDiv(writer);
 }
Beispiel #20
0
        private void WriteSubmitPanel(HtmlTextWriter writer, Login login)
        {
            string  id         = "Login";
            string  idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, login.LoginButtonType);
            Control btn        = login.FindControl(idWithType);

            if (btn != null)
            {
                Page.ClientScript.RegisterForEventValidation(btn.UniqueID);

                WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-SubmitPanel");

                PostBackOptions options    = new PostBackOptions(btn, "", "", false, false, false, false, true, login.UniqueID);
                string          javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options);
                javascript = Page.Server.HtmlEncode(javascript);

                Extender.WriteSubmit(writer, login.LoginButtonType, login.LoginButtonStyle.CssClass, id, login.LoginButtonImageUrl, javascript, login.LoginButtonText);

                WebControlAdapterExtender.WriteEndDiv(writer);
            }
        }
        /// <summary>
        /// Writes the step title panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="wizard">
        /// The wizard.
        /// </param>
        /// <remarks>
        /// </remarks>
        private static void WriteStepTitlePanel(HtmlTextWriter writer, CreateUserWizard wizard)
        {
            if (wizard.ActiveStep == null)
            {
                return;
            }

            if (String.IsNullOrEmpty(wizard.ActiveStep.Title))
            {
                return;
            }

            var className = (!String.IsNullOrEmpty(wizard.TitleTextStyle.CssClass))
                                ? wizard.TitleTextStyle.CssClass + " "
                                : string.Empty;

            className += "AspNet-CreateUserWizard-StepTitlePanel";
            WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty);
            WebControlAdapterExtender.WriteSpan(writer, string.Empty, wizard.ActiveStep.Title);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        /// <summary>
        /// Writes the continue panel.
        /// </summary>
        /// <param name="writer">
        /// The writer.
        /// </param>
        /// <param name="wizard">
        /// The wizard.
        /// </param>
        /// <remarks>
        /// </remarks>
        private void WriteContinuePanel(HtmlTextWriter writer, CreateUserWizard wizard)
        {
            const string Id         = "ContinueButton";
            var          idWithType = WebControlAdapterExtender.MakeIdWithButtonType(Id, wizard.ContinueButtonType);
            var          btn        = wizard.FindControl("CompleteStepContainer").FindControl(idWithType);

            if (btn == null)
            {
                return;
            }

            this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID);
            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-ContinuePanel", string.Empty);
            this.Extender.WriteSubmit(
                writer,
                wizard.ContinueButtonType,
                wizard.ContinueButtonStyle.CssClass,
                "CompleteStepContainer_ContinueButton",
                wizard.ContinueButtonImageUrl,
                string.Empty,
                wizard.ContinueButtonText);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }
        /////////////////////////////////////////////////////////
        // Step 2: question
        /////////////////////////////////////////////////////////

        private void WriteQuestionPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery)
        {
            WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-QuestionPanel");
            Extender.WriteReadOnlyTextBox(writer, passwordRecovery.LabelStyle.CssClass, passwordRecovery.QuestionLabelText, passwordRecovery.TextBoxStyle.CssClass, passwordRecovery.Question);
            WebControlAdapterExtender.WriteEndDiv(writer);
        }