2015-03-11 4 views
0

Lorsque vous appuyez sur "Créer un utilisateur" dans votre CreateUserQizard standard ASP.NET, le OnCreatedUser est appelé et vous redirige une fois l'utilisateur créé. Cependant, je dois exécuter du code avant l'utilisateur est créé mais après avoir cliqué sur le bouton "Créer un utilisateur".Méthode d'appel avant la création de l'utilisateur

Comme ceci: Cliquez sur « Créer un utilisateur » -> Exécuter ma méthode -> Créer un utilisateur -> OnCreatedUser

J'ai fait ma propre méthode pour vérifier si le courrier électronique existe déjà, mais je ne sais pas comment pour l'appeler puisque le magicien crée l'utilisateur tout de suite. Y at-il un moyen d'entrer avant que l'utilisateur est créé et exécuter mon code?

Mon code:

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(); 
    } 

Répondre

1

utiliser simplement OnCreatingUser et mis e.Cancel = true; si e-mail est déjà enregistré.

Si vous définissez requiresUniqueEmail="true" pour le fournisseur d'appartenances, il effectue cette vérification pour vous.

+0

requiresUniqueEmail = "vrai" complètement désordre mon login facebook, donc besoin de mon propre truc :) Merci, va essayer ça! – Rodal

+0

Fonctionne comme un charme :) Merci beaucoup! – Rodal