当您在 ASP.NET 标准CreateUserQizard中按"创建用户"时,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();
}
只需使用 OnCreatingUser
,并设置e.Cancel = true;
电子邮件是否已注册。
如果为成员资格提供程序设置了requiresUniqueEmail="true"
,它将为您执行此检查。