创建用户前调用方法
Call method before creating user
当您在 ASP.NET 标准 CreateUserQizard 中按 "Create user" 时,会调用 OnCreatedUser
并在创建用户后重定向您。但是我需要 运行 一些代码 在 创建用户之前但在单击 "Create user" 按钮之后。
像这样:点击"Create user"->运行我的方法->创建用户->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"
,它会为您进行检查。
当您在 ASP.NET 标准 CreateUserQizard 中按 "Create user" 时,会调用 OnCreatedUser
并在创建用户后重定向您。但是我需要 运行 一些代码 在 创建用户之前但在单击 "Create user" 按钮之后。
像这样:点击"Create user"->运行我的方法->创建用户->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"
,它会为您进行检查。