在创建用户之前调用方法

时间:2015-03-11 06:04:32

标签: c# asp.net createuserwizard

当您在ASP.NET标准CreateUserQizard中按“创建用户”时,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=@emailParam";
            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 个答案:

答案 0 :(得分:1)

只需使用OnCreatingUser,如果已注册电子邮件,请设置e.Cancel = true;

如果您为会员提供商设置requiresUniqueEmail="true",则会为您进行此项检查。