2009-11-05 6 views
6

(Hi Jestem całkiem nowy na tym),Dodawanie ról do „CreateUserWizard”

Czy jest możliwe aby dodać role do „CreateUserWizard” narzędzia, dzięki czemu można zaznaczyć pola (lub zobaczyć role w rozwijanej menu) i po wybraniu jednego lub więcej informacji ta informacja jest automatycznie dodawana do konfiguracji asp.net?

Mam następujący kod:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" Height="260px" Width="568px"> 
     <WizardSteps> 
      <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> 
       <ContentTemplate> 
        <table border="0" style="font-size: 100%; width: 568px; font-family: Verdana; height: 260px"> 
         <tr> 
          <td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #5d7b9d"> 
           Create a New Account</td> 
         </tr> 
         <tr> 
          <td align="right"> 
           <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label></td> 
          <td> 
           <asp:TextBox ID="UserName" 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="QuestionLabel" runat="server" AssociatedControlID="Question">Security Question:</asp:Label></td> 
          <td> 
           <asp:TextBox ID="Question" runat="server"></asp:TextBox> 
           <asp:RequiredFieldValidator ID="QuestionRequired" runat="server" ControlToValidate="Question" 
            ErrorMessage="Security question is required." ToolTip="Security question is required." 
            ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
          </td> 
         </tr> 
         <tr> 
          <td align="right"> 
           <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Security Answer:</asp:Label></td> 
          <td> 
           <asp:TextBox ID="Answer" runat="server"></asp:TextBox> 
           <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer" 
            ErrorMessage="Security answer is required." ToolTip="Security answer is required." 
            ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> 
          </td> 
         </tr> 
         <tr> 
          <td align="center" colspan="2"> 
           <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" 
            ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match." 
            ValidationGroup="CreateUserWizard1"></asp:CompareValidator> 
          </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> 
      </asp:CreateUserWizardStep> 
      <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> 
       <ContentTemplate> 
        <table border="0" style="font-size: 100%; width: 568px; font-family: Verdana; height: 260px"> 
         <tr> 
          <td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #5d7b9d"> 
           Complete</td> 
         </tr> 
         <tr> 
          <td style="text-align: left"> 
           &nbsp; Your account has been successfully created</td> 
         </tr> 
         <tr> 
          <td align="right" colspan="2" style="text-align: right"> 
           <asp:Button ID="ContinueButton" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC" 
            BorderStyle="Solid" BorderWidth="1px" CausesValidation="False" CommandName="Continue" 
            Font-Names="Verdana" ForeColor="#284775" PostBackUrl="~/Default.aspx" Text="Continue" 
            ValidationGroup="CreateUserWizard1" Width="105px" /> 
           &nbsp; &nbsp; &nbsp;</td> 
         </tr> 
        </table> 
       </ContentTemplate> 
      </asp:CompleteWizardStep> 
     </WizardSteps> 
     <SideBarStyle BackColor="#5D7B9D" BorderWidth="0px" Font-Size="0.9em" VerticalAlign="Top" /> 
     <SideBarButtonStyle BorderWidth="0px" Font-Names="Verdana" ForeColor="White" /> 
     <ContinueButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" 
      BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" /> 
     <NavigationButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" 
      BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" /> 
     <HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em" 
      ForeColor="White" HorizontalAlign="Center" /> 
     <CreateUserButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" 
      BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" /> 
     <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <StepStyle BorderWidth="0px" /> 
    </asp:CreateUserWizard> 

Dzięki.

Odpowiedz

10

Krótko mówiąc, należy dodać kontrolkę rozwijania ról/listy kontrolnej gdzieś w sekcji .

Ponieważ kontrola jest w szablonie, należy użyć następującego kodu, aby znaleźć kontroli w kod związany:

roleDropDownList = (DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList"); 

Można by powiązać ją jak zwykle wiązałby kontrolę w Page_Init .

Aby dodać użytkownika do roli, użyj zdarzenia CreatedUser kontrolki CreateUserWizard.

protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) 
{ 
    Roles.AddUserToRole(CreateUserWizard1.UserName, roleDropDownList.SelectedValue); 
} 
+0

Dzięki za ten . – Sagi

0

jeśli chcesz przypisać rolę do utworzonej właśnie można użyć tego użytkownika:

Roles.AddUserToRole((sender as CreateUserWizard).UserName, "YourRole"); 
0

dodać dropdownlist w ramach ostatniego pola tekstowego z CreateUserWizard jak poniższy kod. ASP:

    <%---------existing items------------%> 
        <tr> 
         <td align="right"> 
          <asp:Label runat="server" AssociatedControlID="Answer" ID="AnswerLabel">Security Answer:</asp:Label></td> 
         <td> 
          <asp:TextBox runat="server" ID="Answer"></asp:TextBox> 
          <asp:RequiredFieldValidator runat="server" ControlToValidate="Answer" ErrorMessage="Security answer is required." ValidationGroup="CreateUserWizard1" ToolTip="Security answer is required." ID="AnswerRequired">*</asp:RequiredFieldValidator> 
         </td> 
        </tr> 

        <%---------role Dropdownlist to be inserted here------------%> 
        <tr><td align="right"><asp:Label runat="server" ID="RoleLabel">Role</asp:Label></td> 
         <td> 
          <asp:DropDownList ID="RoleDropDownList" runat="server"></asp:DropDownList></td> 

        </tr> 

Ponadto trzeba dodać w kodzie za następujące:

 protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList")).DataSource = Roles.GetAllRoles(); 
     ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList")).DataBind(); 
     int rolecounter = ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList")).Items.Count; 
     ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList")).Items[rolecounter - rolecounter].Selected = true;  
    } 
} 
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) 
{ 
    DropDownList roleDropDownList = (DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RoleDropDownList"); 
    Roles.AddUserToRole(CreateUserWizard1.UserName, roleDropDownList.SelectedValue); 
} 

ten pracuje dla me.Check to

zobaczyć wiecej tam http://p2p.wrox.com/asp-net-2-0-basics/42303-createuserwizard-dropdownlist.html