gpt4 book ai didi

asp.net - 为什么 CreateUserWizard Control 会自动添加 ASPNETDB.MDF 数据库?

转载 作者:行者123 更新时间:2023-12-04 06:19:21 24 4
gpt4 key购买 nike

我只想使用 CreateUserWizard Control 从用户那里收集信息并插入到我的自定义数据库中。我不想使用 Asp.Net Membership 。

当我将此设置添加到 web.config 时<membership>
<providers>
<clear />
</providers>
</membership>

出现以下错误Default Membership Provider must be specified.
当我从 web.config 中删除此设置时。该页面运行成功,但 createUserWizard 控件会自动将 ASPNETDB.MDF 数据库添加到 App_Data 文件夹中。

问题:我们可以在不使用 ASPNETDB 或 asp.net 成员(member)资格的情况下将 CreateUserWizard 与自定义数据库一起使用吗?

最佳答案

CreateUserWizard 控件为 MembershipProvider 对象提供用户界面,该对象与您网站的用户数据存储进行通信以在数据存储中创建新的用户帐户。 CreateUserWizard 依赖 MembershipProvider 来创建用户并在必要时禁用它们(参见 msdn)。

因此,如果您使用 CreateUserWizard,则必须使用 Membership Provider。

如果您不想使用标准成员(member)提供程序,您应该考虑创建一个 Custom Membership Provider .

但是从您的问题来看,不清楚您为什么不想使用标准成员(member)资格。可能值得研究一下将标准 Membership 架构包含到您自己的数据库中的可能性,并使用已在 asp.net 中实现的授权功能为您节省大量工作(更不用说可能的安全问题等)。 Here您可以找到如何将 Membership 架构放入与应用程序数据相同的数据库中。

更新:

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

示例代码:

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

然后为了移动到向导中的下一页,您需要处理 NextButtonClick 事件:
  • 添加 e.Cancel = False;
  • 添加 CreateUserWizard.ActiveStepIndex =(您的下一个向导步骤
    指数);

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

    希望能帮助到你。

    关于asp.net - 为什么 CreateUserWizard Control 会自动添加 ASPNETDB.MDF 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801132/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com