【问题标题】:Call method before creating user创建用户前调用方法
【发布时间】:2015-03-11 06:04:31
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net createuserwizard


    【解决方案1】:

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

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

    【讨论】:

    • requiresUniqueEmail="true" 完全搞砸了我的 Facebook 登录,所以需要我自己的东西 :) 谢谢,会试试这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多