我正在为我们公司开发一个网站,使其他公司的用户能够直接从我们公司订购。我已经分配了用户角色,并根据注册期间的一些选择以编程方式分配了它们。我添加了一个使用 CreateUserWizard 表单的页面,并添加了一个步骤来从客户那里收集更多信息(特别是公司名称,以便我们知道允许他们订购哪些部件)。问题是,一旦有人填写了第一个注册过程并单击“创建用户”,用户就会在那里创建,并将他们引导到我收集公司信息的下一步。如果用户中止进程,用户帐户仍会创建,并且不会分配给用户组。CreateUserWizard 的最后一页(步骤)有一个完成按钮,它根据第二步中的一些选择将它们分配给用户组。在注册过程实际完成之前,如何防止用户被添加?这是我到目前为止在幕后的代码。
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");
}
}