CreateUserWizard - 添加步骤,但在所有步骤完成之前不创建用户

发布于 2024-11-15 08:07:28 字数 832 浏览 2 评论 0原文

我想利用 ootb ASP.NET2.0 MembershipProvider CreateUserWizard 控件,并进行一些自定义以添加第二步。

问题是,如果我的第一步是输入 而我的第二步是 ,则用户实际上是在用户从第一步单击之后并进入第二步之前立即创建的。

这是我正在使用的(非常)基本控件:

<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>

是否有办法告诉控件等到所有步骤完成后再创建用户?

I want to make use of the ootb ASP.NET2.0 MembershipProvider CreateUserWizard control, with a little customization to add a 2nd step.

The problem is that if my first step is type <asp:CreateUserWizardStep...> and my 2nd is <asp:WizardStep...>, the user is actually create imediately after the user clicks through from the first step and before they get to the second step.

here's the (very) basic control I'm using:

<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>

Is there anyway to tell the control to wait until all steps are complete before creating the user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把时间冻结 2024-11-22 08:07:28

我也有同样的问题。

似乎没有其他方法可以按照您想要的顺序使用 CreateUserWizard:

Step 1. User Creation 

Step 2. License Step etc.

在 CreateUserWizardStep 之后,数据将始终写入数据库,除非您覆盖 CreateUserWizard 类。

如果您颠倒步骤的顺序,它应该按照 Erich Peterson 在 4GuysFromRolla 网站中发布的方式工作,即步骤 1. 许可步骤、步骤 2. ... 步骤 3. 用户创建。

更新:

我找到了相关的帖子 这可能会有所帮助。简而言之:

如果您想阻止 CreateUserWizard 的 CreateUser 步骤创建用户,您可以尝试处理 CreatingUser 事件并将其 LoginCancelEventArgs.Cancel 属性设置为 true。

示例代码:

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

然后,为了移至向导中的下一页,您需要处理 NextButtonClick 事件:

  1. Add e.Cancel = False;
  2. 添加 CreateUserWizard.ActiveStepIndex = (您的下一个向导步骤索引);

之后,您将需要手动创建用户,例如在 FinishButtonClick 事件处理程序中。

我还没有尝试过,但应该可以。
希望有帮助。

I had the same problem.

It seems that there is no other way to utilize the CreateUserWizard with the order that you want:

Step 1. User Creation 

Step 2. License Step etc.

After CreateUserWizardStep the data will always be written to the database, unless you override the CreateUserWizard classes.

If you reverse the order of the steps it should work as published by Erich Peterson in 4GuysFromRolla website, i.e. Step 1. License Step, Step 2. ... Step 3. User Creation.

UPDATE:

I've found a relevant post which might help. In short:

If you want to prevent the CreateUserWizard's CreateUser step from creating the user, you can try to handle the CreatingUser event and set its LoginCancelEventArgs.Cancel property to true.

Example code:

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

Then in order to move to the next page in the wizard you need to handle NextButtonClick event:

  1. Add e.Cancel = False;
  2. Add CreateUserWizard.ActiveStepIndex = (your next wizard step index);

After that you will need to create the user manually, e.g. in FinishButtonClick event handler.

I haven't tried it yet but it should work.
Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文