我只想使用 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 成员资格的情况下将 CreateUserWizard 与自定义数据库一起使用吗?
CreateUserWizard 控件为 MembershipProvider 对象提供用户界面,该对象与网站的用户数据存储进行通信以在数据存储中创建新的用户帐户。 CreateUserWizard 依赖 MembershipProvider 来创建用户并在必要时禁用它们(参见msdn http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.createuserwizard.aspx).
因此,如果您使用 CreateUserWizard,则必须使用 Membership Provider。
如果您不想使用标准的会员提供程序,您应该考虑创建一个定制会员提供商 http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx.
但从您的问题来看,尚不清楚为什么您不想使用标准会员资格。也许值得考虑一下将标准会员模式包含到您自己的数据库中的可能性,并使用已在 ASP.NET 中实现的授权功能为您节省大量工作(更不用说可能的安全问题等)。Here http://www.asp.net/security/tutorials/creating-the-membership-schema-in-sql-server-cs您可以了解如何将成员身份模式放入与应用程序数据相同的数据库中。
UPDATE:
如果您仍想阻止 CreateUserWizard 的 CreateUser 步骤通过 Membership Provider 创建用户,您可以尝试处理 CreatingUser 事件并将其 LoginCancelEventArgs.Cancel 属性设置为 true。
示例代码:
protected void RegisterUser_CreatingUser(object sender, LoginCancelEventArgs e)
{
e.Cancel = true;
}
然后,为了移至向导中的下一页,您需要处理“下一个按钮单击”事件:
- 添加 e.Cancel = False;
- 添加 CreateUserWizard.ActiveStepIndex = (您的下一个向导步骤
指数);
之后,您需要手动创建用户,例如在 FinishButtonClick 事件处理程序中。
希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)