Je suis plutôt confus J'ai un contrôle d'assistant createuser que j'utilise avec mes classes d'utilisateurs et classes de rôles personnalisées.C# createuser wizard OnDeactivate pas de tir
J'ai une étape pour que l'utilisateur admin puisse créer de nouveaux utilisateurs et leur assigner leurs rôles. La méthode OnActivate est en cours d'exécution mais l'option OnDeactivate ne l'est pas. J'ai mis des points de rupture sur les deux méthodes et confirmé que cela ne va pas dans la méthode du tout. J'ai inclus à la fois le balisage et le code derrière ci-dessous, (désolé il est un peu long je ne voulais pas couper quoi que ce soit Incase qui était le problème):
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" ContinueDestinationPageUrl="~/admin/default.aspx"
DisableCreatedUser="false" Font-Names="Verdana" BackColor="white" Font-Size="10pt"
BorderWidth="1px" BorderColor="#CCCC99" BorderStyle="Solid" CompleteSuccessText="The account has been successfully created."
UnknownErrorMessage="The account was not created. Please try again.">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep2" runat="server" Title="Step 1: Basic User Information"
OnDeactivate="UpdateCurrentLvl_OnDeactivate">
<ContentTemplate>
<table style="font-size: 10pt; font-family: Verdana" border="0" width="400">
<tr>
<td style="font-weight: bold; color: white; background-color: #6b696b" align="center"
colspan="2">
Create Your UserID
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">UserID:</asp:Label></td>
<td>
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ToolTip="User Name is required."
ErrorMessage="User Name is required." ValidationGroup="CreateUserWizard1" ControlToValidate="UserName">
*</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" ToolTip="Password is required."
ErrorMessage="Password is required." ValidationGroup="CreateUserWizard1" ControlToValidate="Password">
*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Re-Type Password:</asp:Label>
</td>
<td>
<asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ToolTip="Confirm Password is required."
ErrorMessage="Confirm Password is required." ValidationGroup="CreateUserWizard1"
ControlToValidate="ConfirmPassword">
*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">Email:</asp:Label>
</td>
<td>
<asp:TextBox ID="Email" runat="server"></asp:TextBox>
</td>
</tr>
</table>
<br />
<br />
<table style="font-size: 10pt; font-family: Verdana" border="0" width="400">
<tr>
<td style="font-weight: bold; color: white; background-color: #6b696b" align="center"
colspan="2">
If You Forget Your Password
</td>
</tr>
<tr>
<td align="right">
Security Question:
</td>
<td>
<asp:DropDownList ID="Question" runat="server" Width="200">
<asp:ListItem Text="[Select a Question]" />
<asp:ListItem Text="Favorite Pet" />
<asp:ListItem Text="Mother's Maiden Name" />
<asp:ListItem Text="Who was your childhood hero?" />
<asp:ListItem Text="Your favorite pasttime?" />
</asp:DropDownList>
<asp:RequiredFieldValidator ID="QuestionRequired" runat="server" InitialValue="[Select a Question]"
ControlToValidate="Question" ErrorMessage="Select a Security Question" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right" width="170">
Your Answer:
</td>
<td>
<asp:TextBox ID="Answer" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer"
ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
</table>
<br />
<br />
<table style="font-size: 10pt; font-family: Verdana" border="0" width="400">
<tr>
<td style="font-weight: bold; color: white; background-color: #6b696b" align="center"
colspan="2">
Help Us Customize Your Experience
</td>
</tr>
<tr>
<td align="right" width="170">
Set Level of the user:</td>
<td>
<asp:DropDownList ID="cLevel" runat="server">
<asp:ListItem Text="[Select a Level]" />
<asp:ListItem Text="1" />
<asp:ListItem Text="2" />
<asp:ListItem Text="3" />
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" InitialValue="[Select a Level]"
ControlToValidate="cLevel" ErrorMessage="Select a Level" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:CompareValidator ID="PasswordCompare" runat="server" ErrorMessage="The Password and Confirmation Password must match."
ValidationGroup="CreateUserWizard1" ControlToValidate="ConfirmPassword" ControlToCompare="Password"
Display="Dynamic">
</asp:CompareValidator>
</td>
</tr>
<tr>
<td style="color: red" align="center" colspan="2">
<asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
</table>
</ContentTemplate>
</asp:CreateUserWizardStep>
<asp:WizardStep runat="server" ID="wsAssignUserToRoles" AllowReturn="False" Title="Step 2: Assign User To Roles"
OnActivate="AssignUserToRoles_Activate" OnDeactivate="AssignUserToRoles_Deactivate">
<table>
<tr>
<td>
Select one or more roles for the user:</td>
</tr>
<tr>
<td>
<asp:ListBox ID="AvailableRoles" runat="server" SelectionMode="Multiple" Height="104px"
Width="264px"></asp:ListBox>
</td>
</tr>
</table>
</asp:WizardStep>
<asp:CompleteWizardStep ID="CompleteWizardStep2" runat="server">
</asp:CompleteWizardStep>
</WizardSteps>
<TitleTextStyle Font-Bold="True" BackColor="#6B696B" ForeColor="White"></TitleTextStyle>
</asp:CreateUserWizard>
Le code est derrière:
public partial class admin_createuser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
// Create an empty Profile for the newly created user
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);
// Populate some Profile properties off of the create user wizard
p.CurrentLevel = Int32.Parse(((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("clevel")).SelectedValue);
// Save profile - must be done since we explicitly created it
p.Save();
}
// Activate event fires when the user hits "next" in the CreateUserWizard
public void AssignUserToRoles_Activate(object sender, EventArgs e)
{
// Databind list of roles in the role manager system to a listbox in the wizard
AvailableRoles.DataSource = Roles.GetAllRoles(); ;
AvailableRoles.DataBind();
}
// Deactivate event fires when user hits "next" in the CreateUserWizard
public void AssignUserToRoles_Deactivate(object sender, EventArgs e)
{
// Add user to all selected roles from the roles listbox
for (int i = 0; i < AvailableRoles.Items.Count; i++)
{
if (AvailableRoles.Items[i].Selected == true)
Roles.AddUserToRole(CreateUserWizard1.UserName, AvailableRoles.Items[i].Value);
}
}
//set the user level to the value set in the form as it has been inserted into the DB at this point.
public void UpdateCurrentLvl_OnDeactivate(object sender, EventArgs e)
{
int level = Int32.Parse(((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("clevel")).SelectedValue);
MyMembershipUser myUser = (MyMembershipUser)Membership.GetUser(CreateUserWizard1.UserName);
myUser.CurrentLVL = level;
Membership.UpdateUser(myUser);
}
}
Aurait aussi aimé voter pour votre réponse, mais je suis nouveau sur le site ... et je n'ai aucun point – AngelaG