2012-08-17 36 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