2014-11-15 37 views
0

偶爾,我會以某種方式獲取在asp.net web應用程序中註冊兩次的用戶。註冊使用createUserwizard,用戶和電子郵件被設置爲唯一的,所以我沒有線索,並沒有運氣在另一篇文章中得到答案,所以我已經轉移到另一種方式來解決這個問題。我認爲它可能是從用戶點擊兩次「註冊」按鈕靠近在一起。我一直在嘗試很多解決方案,要麼在點擊之後禁用按鈕(這是字段驗證的難點),要麼彈出一個不說「創建用戶」,或者甚至只是將按鈕文本更改爲「創建」,就像這樣solution --with no luck (Rory's),我沒有得到這個錯誤,但沒有按鈕的變化發生了。這是我的嚮導(拿出EUA,CHK箱通提示)防止用戶在createUserWizard上點擊兩次

<WizardSteps> 
    <asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep" > 
     <ContentTemplate> 
      <p class="message-info">Passwords are required to be a minimum of <%: Membership.MinRequiredPasswordLength %> characters in length.</p> 
      <p class="validation-summary-errors"> 
       <asp:Literal runat="server" ID="ErrorMessage" /> 
      </p> 
      <fieldset> 
       <legend>Registration Form</legend> 
       <ol> 
        <li> 
         <asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label> 
         <asp:TextBox runat="server" ID="UserName" /> 
         <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" 
          CssClass="field-validation-error" ErrorMessage="The user name field is required." /> 
         <asp:RegularExpressionValidator runat="server" ControlToValidate="UserName" 
          CssClass="field-validation-error" ErrorMessage="No spaces or special characters" ValidationExpression="^[a-zA-Z0-9]+$" /> 
        </li> 
        <li> 
         <asp:Label runat="server" AssociatedControlID="Email">Email address</asp:Label> 
         <asp:TextBox runat="server" ID="Email" TextMode="Email" /> 
         <asp:RequiredFieldValidator runat="server" ControlToValidate="Email" 
          CssClass="field-validation-error" ErrorMessage="The email address field is required." /> 
        </li> 
        <li> 
         <asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label> 
         <asp:TextBox runat="server" ID="Password" TextMode="Password" /> 
         <asp:RequiredFieldValidator runat="server" ControlToValidate="Password" 
          CssClass="field-validation-error" ErrorMessage="The password field is required." /> 
        </li> 
        <li> 
         <asp:Label runat="server" AssociatedControlID="ConfirmPassword">Confirm password</asp:Label> 
         <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" /> 
         <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword" 
          CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required." /> 
         <asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
          CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." /> 
        </li> 
       </ol> 
       <asp:Button ID="registerBtn" runat="server" CommandName="MoveNext" Text="Register" " /> 
      </fieldset> 
     </ContentTemplate> 
     <CustomNavigationTemplate /> 
    </asp:CreateUserWizardStep> 
</WizardSteps> 

任何防止這種X2點擊將大大appreciated-幫助 - 它繼續違反我時,我得到了「[用戶]鍵已經存在」錯誤使用ASP控制檯工具的能力。

回答

0

您可以禁用按鈕,它被點擊一次後?

Public Class _Default 
    Inherits Page 
    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Button1.Enabled = False 
     MsgBox("Next time you click, the button is disabled, and you don't get this message.") 
    End Sub 
End Class 
+0

試過了,msg彈出,但並沒有阻止它再次被點擊。 – Cory

+0

這是我指出給你的Button.Enabled屬性。我在ASP中測試了這個... –

+0

是的,我知道。在我的嚮導上不起作用。如果它不在嚮導中,則工作。在回發期間,我可以選擇它,可能是因爲它在回發中重置。也許我可以禁用如果加載回發。不過謝謝 – Cory