我只想使用 CreateUserWizard Control 从用户收集信息并将其插入到我的自定义数据库中。我不想使用 Asp.Net 成员(member)资格。
当我将此设置添加到 web.config 时
<membership>
<providers>
<clear />
</providers>
</membership>
出现以下错误
Default Membership Provider must be specified.
当我从 web.config 中删除此设置时。该页面成功运行,但 createUserWizard 控件自动将 ASPNETDB.MDF 数据库添加到 App_Data 文件夹。
问题:我们可以在不使用 ASPNETDB 或 asp.net 成员资格的情况下将 CreateUserWizard 与自定义数据库一起使用吗?
最佳答案
CreateUserWizard 控件为 MembershipProvider 对象提供用户界面,该对象与网站的用户数据存储进行通信,以在数据存储中创建新的用户帐户。 CreateUserWizard 依赖 MembershipProvider 来创建用户并在必要时禁用它们(参见 msdn )。
因此,如果您使用 CreateUserWizard,则必须使用 Membership Provider。
如果您不想使用标准成员(member)提供程序,则应考虑创建 Custom Membership Provider .
但是从您的问题来看,尚不清楚您为什么不想使用标准成员(member)资格。也许值得考虑的是,是否可以将标准成员(member)模式包含到您自己的数据库中,并使用 ASP.NET 中已实现的授权功能为您节省大量工作(更不用说可能的安全问题等)。 Here您可以了解如何将成员资格架构放入与应用程序数据相同的数据库中。
更新:
如果您仍想阻止 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/