当您在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();
}
答案 0 :(得分:1)
只需使用OnCreatingUser
,如果已注册电子邮件,请设置e.Cancel = true;
。
如果您为会员提供商设置requiresUniqueEmail="true"
,则会为您进行此项检查。