2015-03-11 3 views
0

Когда вы нажимаете «Создать пользователя» в стандартном CreateUserQizard ASP.NET, вызывающий и перенаправляет вас после создания пользователя, перенаправляет OnCreatedUser. Однако мне нужно запустить код до, пользователь будет создан, но после нажатия кнопки «Создать пользователя».Метод вызова перед созданием пользователя

Как это: Нажмите кнопку «Создать пользователя» -> Выполнить мой метод -> Создать пользователя -> OnCreatedUser

Я сделал свой собственный метод для проверки, если адрес электронной почты уже существует, однако я не знаю, как для вызова, поскольку мастер сразу же создает пользователя. Есть ли способ войти в систему до того, как пользователь будет создан и выполнит мой код?

Мой код:

TextBox EmailTextBox = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Email") as TextBox; 
String emailParam = EmailTextBox.Text; 

using (SqlConnection con = new SqlConnection(strCon)) 
    { 
     con.Open(); 
     using (SqlCommand cmd = con.CreateCommand()) 
      { 
      cmd.CommandText = "SELECT Email FROM Memberships WHERE [email protected]"; 
      cmd.Parameters.AddWithValue("@emailParam", emailParam); 

      using (SqlDataReader reader = cmd.ExecuteReader()) 
       { 
          if (reader.Read()) 
          { 
           LabelExists.Text = "This e-mail is already registered"; 
          } 
          else 
          { 
           //execute method that creates user 
          } 

       } 
      } 
     con.Close(); 
    } 

ответ

1

Просто используйте OnCreatingUser и установите e.Cancel = true;, если адрес электронной почты уже зарегистрирован.

Если вы установили requiresUniqueEmail="true" для поставщика членства, он делает это для вас.

+0

требуетUniqueEmail = "true" полностью messus мой логин facebook, поэтому мне нужна моя вещь :) Спасибо, попробуем это! – Rodal

+0

Работает как шарм :) Большое спасибо! – Rodal

Смежные вопросы