1

我已經通過繼承.NET成員資格提供程序實現了自定義成員資格提供程序。對於我的前端使用CreateUserWizard控件,這是與我的會員提供商連接。我已經編輯CreateUserWizard控件的模板,所以現在它看起來像這樣:自定義成員資格提供程序中自定義字段的值

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
        MembershipProvider="CmsMembershipProvider" BackColor="#E3EAEB" 
        BorderColor="#E6E2D8" BorderStyle="Solid" BorderWidth="1px" 
        Font-Names="Verdana" Font-Size="0.8em" 
        ContinueDestinationPageUrl="~/Pages/FirstPage.aspx"> 
        <ContinueButtonStyle BackColor="White" BorderColor="#C5BBAF" 
         BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" 
         ForeColor="#1C5E55" /> 
        <CreateUserButtonStyle BackColor="White" BorderColor="#C5BBAF" 
         BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" 
         ForeColor="#1C5E55" /> 
        <TitleTextStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
        <WizardSteps> 
         <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> 
          <ContentTemplate> 
           <table> 
            <tr> 
             <td align="center" colspan="2" class="style3"> 
              <strong>Sign Up for Your New Account</strong></td> 
            </tr> 
            <tr> 
             <td align="right"> 
              <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label> 
             </td> 
             <td> 
              <asp:TextBox ID="UserName" name="usna" runat="server"></asp:TextBox> 
              <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
               ControlToValidate="UserName" ErrorMessage="User Name is required." 
               ToolTip="User Name is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
             </td> 
            </tr> 
            <tr> 
             <td align="right"> 
              <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label> 
             </td> 
             <td> 
              <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox> 
              <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
               ControlToValidate="Password" ErrorMessage="Password is required." 
               ToolTip="Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
             </td> 
            </tr> 
            <tr> 
             <td align="right"> 
              <asp:Label ID="ConfirmPasswordLabel" runat="server" 
               AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label> 
             </td> 
             <td> 
              <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox> 
              <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" 
               ControlToValidate="ConfirmPassword" 
               ErrorMessage="Confirm Password is required." 
               ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
             </td> 
            </tr> 
            <tr> 
             <td align="right"> 
              <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label> 
             </td> 
             <td> 
              <asp:TextBox ID="Email" runat="server"></asp:TextBox> 
              <asp:RequiredFieldValidator ID="EmailRequired" runat="server" 
               ControlToValidate="Email" ErrorMessage="E-mail is required." 
               ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
             </td> 
            </tr> 
            <tr> 
             <td align="right"> 
              <asp:Label ID="DomainLabel" runat="server" AssociatedControlID="Domain">Domain:</asp:Label> 
             </td> 
             <td> 
              <asp:TextBox ID="Domain" runat="server"></asp:TextBox> 
              <asp:RequiredFieldValidator ID="DomainRequired" runat="server" 
               ControlToValidate="Domain" ErrorMessage="Domain is required." 
               ToolTip="Domain is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
             </td> 
            </tr> 
            <tr> 
             <td align="center" colspan="2" style="color:Red;"> 
              <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal> 
             </td> 
            </tr> 
           </table> 
          </ContentTemplate> 
          <CustomNavigationTemplate> 
           <table border="0" cellspacing="5" style="width:100%;height:100%;"> 
            <tr align="right"> 
             <td align="right" colspan="0"> 
              <asp:Button ID="StepNextButton" runat="server" BackColor="White" 
               BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
               CommandName="MoveNext" Font-Names="Verdana" ForeColor="#1C5E55" 
               Text="Create User" ValidationGroup="CreateUserWizard1" /> 
             </td> 
            </tr> 
           </table> 
          </CustomNavigationTemplate> 
         </asp:CreateUserWizardStep> 
         <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> 
         </asp:CompleteWizardStep> 
        </WizardSteps> 
        <FinishNavigationTemplate> 
         <asp:Button ID="FinishPreviousButton" runat="server" BackColor="White" 
          BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
          CausesValidation="False" CommandName="MovePrevious" Font-Names="Verdana" 
          ForeColor="#1C5E55" Text="Previous" /> 
         <asp:Button ID="FinishButton" runat="server" BackColor="White" 
          BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
          CommandName="MoveComplete" Font-Names="Verdana" ForeColor="#1C5E55" 
          Text="Finish" /> 
        </FinishNavigationTemplate> 
        <HeaderStyle BackColor="#666666" BorderColor="#E6E2D8" BorderStyle="Solid" 
         BorderWidth="2px" Font-Bold="True" Font-Size="0.9em" ForeColor="White" 
         HorizontalAlign="Center" /> 
        <NavigationButtonStyle BackColor="White" BorderColor="#C5BBAF" 
         BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" 
         ForeColor="#1C5E55" /> 
        <SideBarButtonStyle ForeColor="White" /> 
        <SideBarStyle BackColor="#1C5E55" Font-Size="0.9em" VerticalAlign="Top" /> 
        <StartNavigationTemplate> 
         <asp:Button ID="StartNextButton" runat="server" BackColor="White" 
          BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
          CommandName="MoveNext" Font-Names="Verdana" ForeColor="#1C5E55" Text="Next" /> 
        </StartNavigationTemplate> 
        <StepNavigationTemplate> 
         <asp:Button ID="StepPreviousButton" runat="server" BackColor="White" 
          BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
          CausesValidation="False" CommandName="MovePrevious" Font-Names="Verdana" 
          ForeColor="#1C5E55" Text="Previous" /> 
         <asp:Button ID="StepNextButton" runat="server" BackColor="White" 
          BorderColor="#C5BBAF" BorderStyle="Solid" BorderWidth="1px" 
          CommandName="MoveNext" Font-Names="Verdana" ForeColor="#1C5E55" Text="Next" /> 
        </StepNavigationTemplate> 
        <StepStyle BorderWidth="0px" /> 
       </asp:CreateUserWizard> 

它具有原fieds減去SecurityQuestion和答案,但除了我有場域至極是文本框。

我重寫方法CREATEUSER,所以它看起來是這樣的:

​​

它插入到數據庫的完美,但我不能從形式獲取文本框域的值,因爲創建用戶不發送變量。 我發現了一些例子,他們說我可以在CreateUserWizard中創建另一個步驟,然後用新的值集更新數據庫,但我不想在不同的步驟中這樣做。它可以一步完成嗎?

回答

1

由於您有一個用戶的額外信息,您可能需要考慮創建一個默認值Custom Membership User。然後,您可以提供另一個覆蓋,以便插入該信息的CreateUser方法。

+0

我正在考慮這個......另一種選擇是在CreateUserWizard控件上添加onCreatedUser事件,並處理啓動的方法內的附加字段的值。你對此有何看法? – 2012-02-07 23:29:20

+0

@stanislav - 你可以這樣做,但這樣你將有一箇中心位置來處理你的額外信息,如果你在其他地方需要它,你只需要打電話給會員來獲得額外的信息。 – TheBoyan 2012-02-07 23:35:53

+0

thx煽動... – 2012-02-07 23:44:37

相關問題