2012-08-17 3 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 사용 –

답변

0

해결책을 찾았습니다. 방금 마법사의 등록 단계를 변경하여 사용자 이름, 암호 등 회사 및 기타 정보를 묻습니다.

0

당신은 (DB에 세션, 임시 테이블 또는 다른) 어딘가에 일시적으로 저장해야 다음 일괄 난 당신의 코드가 무엇을하고 있는지 잘 모르겠어요 마지막 단계에서 모든 입력/

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 단계가 아닌 첫 번째 단계 이후에 사용자를 만듭니다. –