2009-11-05 3 views
6

Hallo (Ich bin ziemlich neu in diesem) HinzufügenRollen auf den ‚Create‘

Ist es möglich, Rollen auf das ‚Create‘ Werkzeug hinzuzufügen, so dass Sie ankreuzen (oder sehen Sie Rollen in einem Dropdown Menü) und sobald eine oder mehrere ausgewählt wurden, wird diese Information automatisch zur asp.net Konfiguration hinzugefügt?

Ich habe den folgenden Code:

<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> 

Dank.

Antwort

10

Kurz gesagt, was Sie tun müssen, ist die Rolle Dropdown/Checklisten-Steuerelement irgendwo im Bereich <asp:CreateUserWizardStep><ContentTemplate> hinzufügen.

Da die Steuerung in einer Vorlage ist, müssen Sie den folgenden Code verwenden, um die Steuerung im Code zu finden hinter:

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

Sie würden es binden, wie Sie in der Regel eine Kontrolle in der Page_Init würden binden .

Verwenden Sie zum Hinzufügen des Benutzers zur Rolle das CreatedUser-Ereignis des CreateUserWizard-Steuerelements.

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

Vielen Dank für diese . – Sagi

0

, wenn Sie die Rolle für den Benutzer zuweisen Sie gerade erstellt haben Sie diese verwenden können:

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

Fügen Sie die Dropdownlist unter dem letzten Textbox des Create wie im folgenden Code dargestellt. 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> 

Auch müssen Sie hinter Code hinzufügen, in der folgende:

 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); 
} 

Dies funktioniert für me.Check es

sehen für mehr dort http://p2p.wrox.com/asp-net-2-0-basics/42303-createuserwizard-dropdownlist.html