Usuário com melhor resposta
Selecionando Roles no novo usuário

Pergunta
-
Respostas
-
Eu acho que agora vai dar certo. Olha só como ficou o Register.aspx
protected void Page_Load(object sender, EventArgs e) { RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"]; //Crio uma role if (!Roles.RoleExists("Financeiro")) { Roles.CreateRole("Financeiro"); } //pega todas roles cadastradas var roles = Roles.GetAllRoles(); DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //adiciona as roles no DropDrownList foreach (var item in roles) { DDL.Items.Add(item); } } //procura o controle no form private Control FindControlRecursive(Control root, string id) { if (root.ID == id) { return root; } foreach (Control c in root.Controls) { Control t = FindControlRecursive(c, id); if (t != null) { return t; } } return null; } protected void RegisterUser_CreatedUser(object sender, EventArgs e) { //recupero nome do usuario TextBox TB = (TextBox)FindControlRecursive(this.Page, "UserName"); //recupero qual foi a selecao no DropDownList DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //adiciono um usuario a uma role Roles.AddUserToRole(TB.Text, DDL.SelectedValue); FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false); string continueUrl = RegisterUser.ContinueDestinationPageUrl; if (!OpenAuth.IsLocalUrl(continueUrl)) { continueUrl = "~/"; } Response.Redirect(continueUrl); }
Mais sobre FindControlRecursive
- Editado welington jrModerator quarta-feira, 28 de novembro de 2012 17:26
- Marcado como Resposta Marcos Bazilio sexta-feira, 30 de novembro de 2012 13:48
-
Só alterei o método RegisterUser_CreatedUser. Veja como ficou
protected void RegisterUser_CreatedUser(object sender, EventArgs e) { //recupero nome do usuario TextBox TB = (TextBox)FindControlRecursive(this.Page, "UserName"); //recupero o DropDownList DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //Recupero o Name do controle var nameControl = DDL.UniqueID; //Atraves do Name eu recupero valor no request var selecao = Request[nameControl]; //adiciono um usuario a uma role Roles.AddUserToRole(TB.Text, selecao); FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false); string continueUrl = RegisterUser.ContinueDestinationPageUrl; if (!OpenAuth.IsLocalUrl(continueUrl)) { continueUrl = "~/"; } Response.Redirect(continueUrl); }
Boa sorte!!!- Editado welington jrModerator quinta-feira, 29 de novembro de 2012 19:47
- Marcado como Resposta Marcos Bazilio sexta-feira, 30 de novembro de 2012 13:47
Todas as Respostas
-
-
-
-
-
-
tenta o seguinte
protected void Page_Load(object sender, EventArgs e) { string[] roles = Roles.GetAllRoles(); foreach (var item in roles) { DropDownList1.Items.Add(item); } }
using System.Web.Security
- Editado welington jrModerator quarta-feira, 28 de novembro de 2012 12:08
-
-
-
-
isso
<p> <asp:Label ID="Label1" runat="server" AssociatedControlID="ConfirmPassword">Escolha a Permissão:</asp:Label> <asp:DropDownList ID="DropDownList1" runat="server"> </asp:DropDownList> </p>
este código esta logo abaixo de confirme a senha...
- Editado Marcos Bazilio quarta-feira, 28 de novembro de 2012 12:41
-
Então ele não está conseguindo preencher DropDownList. Não acha o DropDownList no seu CodeBehind. posta seu código do aspx
- Editado welington jrModerator quarta-feira, 28 de novembro de 2012 13:04
-
é o padrão que vem no webapplication
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="False" OnCreatedUser="RegisterUser_CreatedUser" OnNextButtonClick="RegisterUser_CreatedUser"> <LayoutTemplate> <asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder> </LayoutTemplate> <WizardSteps> <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server"> <ContentTemplate> <h2> Create a New Account </h2> <p> Use the form below to create a new account. </p> <p> Passwords are required to be a minimum of <%= Membership.MinRequiredPasswordLength %> characters in length. </p> <span class="failureNotification"> <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal> </span> <asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification" ValidationGroup="RegisterUserValidationGroup" /> <div class="accountInfo"> <fieldset class="register"> <legend>Account Information</legend> <p> <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label> <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox> <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label> <asp:TextBox ID="Email" runat="server" CssClass="textEntry"></asp:TextBox> <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" CssClass="failureNotification" ErrorMessage="E-mail is required." ToolTip="E-mail is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label> <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator> </p> <p> <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label> <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic" ErrorMessage="Confirm Password is required." ID="ConfirmPasswordRequired" runat="server" ToolTip="Confirm Password is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator> <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match." ValidationGroup="RegisterUserValidationGroup">*</asp:CompareValidator> </p> <p> <asp:Label ID="Label1" runat="server" AssociatedControlID="DropDownList1">Escolha a Permissão:</asp:Label> <asp:DropDownList ID="DropDownList1" runat="server" Width="326px"> </asp:DropDownList> </p> </fieldset> <p class="submitButton"> <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Create User" ValidationGroup="RegisterUserValidationGroup" /> </p> </div> </ContentTemplate> <CustomNavigationTemplate> </CustomNavigationTemplate> </asp:CreateUserWizardStep> <asp:CompleteWizardStep runat="server"> <ContentTemplate> <table> <tr> <td align="center"> Complete </td> </tr> <tr> <td> Your account has been successfully created. </td> </tr> <tr> <td align="right"> <asp:Button ID="ContinueButton" runat="server" CausesValidation="False" CommandName="Continue" Text="Continue" ValidationGroup="RegisterUser" /> </td> </tr> </table> </ContentTemplate> </asp:CompleteWizardStep> </WizardSteps> </asp:CreateUserWizard> </asp:Content>
-
Eu acho que agora vai dar certo. Olha só como ficou o Register.aspx
protected void Page_Load(object sender, EventArgs e) { RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"]; //Crio uma role if (!Roles.RoleExists("Financeiro")) { Roles.CreateRole("Financeiro"); } //pega todas roles cadastradas var roles = Roles.GetAllRoles(); DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //adiciona as roles no DropDrownList foreach (var item in roles) { DDL.Items.Add(item); } } //procura o controle no form private Control FindControlRecursive(Control root, string id) { if (root.ID == id) { return root; } foreach (Control c in root.Controls) { Control t = FindControlRecursive(c, id); if (t != null) { return t; } } return null; } protected void RegisterUser_CreatedUser(object sender, EventArgs e) { //recupero nome do usuario TextBox TB = (TextBox)FindControlRecursive(this.Page, "UserName"); //recupero qual foi a selecao no DropDownList DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //adiciono um usuario a uma role Roles.AddUserToRole(TB.Text, DDL.SelectedValue); FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false); string continueUrl = RegisterUser.ContinueDestinationPageUrl; if (!OpenAuth.IsLocalUrl(continueUrl)) { continueUrl = "~/"; } Response.Redirect(continueUrl); }
Mais sobre FindControlRecursive
- Editado welington jrModerator quarta-feira, 28 de novembro de 2012 17:26
- Marcado como Resposta Marcos Bazilio sexta-feira, 30 de novembro de 2012 13:48
-
-
Só alterei o método RegisterUser_CreatedUser. Veja como ficou
protected void RegisterUser_CreatedUser(object sender, EventArgs e) { //recupero nome do usuario TextBox TB = (TextBox)FindControlRecursive(this.Page, "UserName"); //recupero o DropDownList DropDownList DDL = (DropDownList)FindControlRecursive(this.Page, "DropDownList1"); //Recupero o Name do controle var nameControl = DDL.UniqueID; //Atraves do Name eu recupero valor no request var selecao = Request[nameControl]; //adiciono um usuario a uma role Roles.AddUserToRole(TB.Text, selecao); FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false); string continueUrl = RegisterUser.ContinueDestinationPageUrl; if (!OpenAuth.IsLocalUrl(continueUrl)) { continueUrl = "~/"; } Response.Redirect(continueUrl); }
Boa sorte!!!- Editado welington jrModerator quinta-feira, 29 de novembro de 2012 19:47
- Marcado como Resposta Marcos Bazilio sexta-feira, 30 de novembro de 2012 13:47