繁体   English   中英

如果在 ASP.NET (webforms) / OWIN 中多次单击,则复制用户

[英]Duplicating users if clicking multiple times in ASP.NET (webforms) / OWIN

我正在使用 OWIN 创建一个用户。 问题是,在创建帐户时...如果用户已经存在,我会手动检查我的数据库。 经常发生的是,如果用户两次、三次甚至更多次点击,它会显示“您的帐户已经创建”错误,并且不会自动重定向它们。 此外,它会创建大量重复的数据,我正在保存到 SQL 中的另一个表中,该表用于新用户注册。

这是用户点击时执行的代码

 if (!u.userExists(email))
   {
   var created = um.CreateUser(email, email, password, firstName, lastName, country, ip);

   if (created == true)
     {
       u.subscribeSIB(email, firstName, lastName, country);
       Response.RedirectPermanent("/members/");
     }
     else
     {
      ipTop.Text = "<span class=\"text-danger mt-3\">An Error Occured</span>";
     }
       }
      else // acc exists
      {
      ipTop.Text = "<span class=\"text-danger mt-3\">Sorry - it seems you've already made an account before. <a href=\"/login\">Sign In</a>.</span>";
      }

这是检查用户是否存在的代码

    public bool userExists(string email)
   {
    var userStore = new UserStore<IdentityUser>();
    var userManager = new UserManager<IdentityUser>(userStore);
    var useremail = userManager.FindByEmail(email);

    if (useremail == null)
    {
        return false;
    }
    return true;
   }

我应该如何停止重复和多次触发?

<asp:Button ID="MyButton" runat="server" CssClass="button" Text="Click Here" OnClientClick="$('.button').hide();" OnClick="MyButton_Click" />

您可以使用 jquery 执行上述操作。 OnClientClick 将隐藏客户端的按钮,然后回发将继续到服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM