10

2番目のステップを追加するために少しカスタマイズして、ootb ASP.NET2.0MembershipProviderCreateUserWizardコントロールを利用したいと思います。

問題は、最初のステップがタイプ<asp:CreateUserWizardStep...>で、2番目のステップがである場合<asp:WizardStep...>、ユーザーが最初のステップからクリックスルーした直後、2番目のステップに到達する前にユーザーが実際に作成されることです。

これが私が使用している(非常に)基本的なコントロールです:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server">
   <WizardSteps>
      <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
      </asp:CreateUserWizardStep>
      <asp:WizardStep runat="server" Title="License Step">
      </asp:WizardStep>
      <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
      </asp:CompleteWizardStep>
   </WizardSteps>
</asp:CreateUserWizard>

ユーザーを作成する前に、すべてのステップが完了するまで待機するようにコントロールに指示する方法はありますか?

4

1 に答える 1

8

私も同じ問題を抱えていました。

CreateUserWizardを希望の順序で利用する方法は他にないようです。

Step 1. User Creation 

Step 2. License Step etc.

CreateUserWizardStepの後、CreateUserWizardクラスをオーバーライドしない限り、データは常にデータベースに書き込まれます。

手順の順序を逆にすると、4GuysFromRolla WebサイトでErichPetersonによって公開されたとおりに機能するはずです。つまり、手順1.ライセンス手順、手順2...手順3.ユーザーの作成。

アップデート:

役立つかもしれない関連する投稿を見つけました。要するに:

CreateUserWizardのCreateUserステップでユーザーが作成されないようにする場合は、CreatingUserイベントを処理し、そのLoginCancelEventArgs.Cancelプロパティをtrueに設定してみてください。

コード例:

protected void RegisterUser_CreatingUser(object sender, LoginCancelEventArgs e) 
{
 e.Cancel = true; 
} 

次に、ウィザードの次のページに移動するには、NextButtonClickイベントを処理する必要があります。

  1. e.Cancel=Falseを追加します。
  2. CreateUserWizard.ActiveStepIndex =(次のウィザードステップインデックス);を追加します。

その後、FinishButtonClickイベントハンドラーなどでユーザーを手動で作成する必要があります。

まだ試していませんが、動作するはずです。それが役に立てば幸い。

于 2011-07-23T18:30:02.543 に答える