2012-08-17 40 views
0

我开发是我们公司的网站,使其他公司用户可以直接从我们公司订购之前添加用户。我已经分配了用户角色,并在注册时根据一些选择以编程方式分配它们。我添加了一个使用CreateUserWizard窗体的页面,并添加了一个步骤来从客户那里收集更多信息(具体来说是公司名称,因此我们知道允许他们订购哪些部分)。问题是,一旦有人填写完第一个注册流程并点击“创建用户”,用户就会在那里创建并指导他们到我收集公司信息的下一步。如果用户中止进程,用户帐户仍然被创建,并且他们没有被分配给用户组。 CreateUserWizard的最后一页(步骤)有一个完成按钮,根据第二步中的一些选择将它们分配给用户组。在注册过程实际完成之前,我如何防止添加用户?这是我在幕后推出的代码。ASP CREATEUSER向导创建按钮下一步

protected void RegisterUser_FinishButtonClick(object sender, WizardNavigationEventArgs e) 
{ 
    if (companyddl.SelectedValue == ""){ 
     errorlbl.Text = "Please Select A Company You Will Be Ordering Parts From."; 

     MembershipCreateStatus createStatus = new MembershipCreateStatus(); 
     MembershipUser newUser = System.Web.Security.Membership.CreateUser(RegisterUser.UserName, RegisterUser.Password, RegisterUser.Email, 
            RegisterUser.Question, RegisterUser.Answer, true, out createStatus); 

     if (companyddl.SelectedValue == "SF") 
      Roles.AddUserToRole(RegisterUser.UserName, "user_sf"); 
     if (companyddl.SelectedValue == "TL") 
      Roles.AddUserToRole(RegisterUser.UserName, "user_tl"); 
     if (companyddl.SelectedValue == "" && companytxt.Text != "OurCompany") 
      Roles.AddUserToRole(RegisterUser.UserName, "user"); 
     if ((companytxt.Text == "OurCompany" || companytxt.Text == "OurCompany, Inc.") && companyddl.SelectedValue == "") 
      Roles.AddUserToRole(RegisterUser.UserName, "manager"); 
    } 
} 
+0

对不起...使用ASP.NET 4.0 – 2012-08-17 12:08:32

回答

0

我找到了一个解决方案。我只是改变在向导中的注册步骤,因此将首先要求该公司及其他信息,则用户名,密码等

0

你应该保存到临时的地方(会话,临时表在数据库或其他),然后分批在最后一步/所有输入

0

我不知道你的代码做什么...看起来它正在执行验证,但是继续创建用户。它不应该是:

protected void RegisterUser_FinishButtonClick(object sender, WizardNavigationEventArgs e) 
{ 
    if (companyddl.SelectedValue == ""){ 
     errorlbl.Text = "Please Select A Company You Will Be Ordering Parts From."; 
     return; 
    } 

    MembershipCreateStatus createStatus = new MembershipCreateStatus(); 
    MembershipUser newUser = System.Web.Security.Membership.CreateUser(RegisterUser.UserName, RegisterUser.Password, RegisterUser.Email, RegisterUser.Question, RegisterUser.Answer, true, out createStatus); 

    if (companyddl.SelectedValue == "SF") 
     Roles.AddUserToRole(RegisterUser.UserName, "user_sf"); 
    if (companyddl.SelectedValue == "TL") 
     Roles.AddUserToRole(RegisterUser.UserName, "user_tl"); 
    if (companyddl.SelectedValue == "" && companytxt.Text != "OurCompany") 
     Roles.AddUserToRole(RegisterUser.UserName, "user"); 
    if ((companytxt.Text == "OurCompany" || companytxt.Text == "OurCompany, Inc.") && companyddl.SelectedValue == "") 
     Roles.AddUserToRole(RegisterUser.UserName, "manager"); 

} 
+0

它确实做正确的验证,问题是它在第一步之后创建用户,而不是在RegisterUser_FinishButtonClick步骤中。 – 2012-08-17 13:08:19