我只想使用CreateUserWizard Control从用户收集信息并插入我的自定义数据库。我不想使用Asp.Net会员资格。
当我将此设置添加到web.config时
<membership>
<providers>
<clear />
</providers>
</membership>
出现以下错误
Default Membership Provider must be specified.
当我从web.config中删除此设置时。页面运行成功但是createUserWizard Control会自动将ASPNETDB.MDF数据库添加到App_Data文件夹中。
问题:我们可以将CreateUserWizard与自定义数据库一起使用而不使用ASPNETDB或asp.net会员资格吗?
答案 0 :(得分:3)
CreateUserWizard控件为MembershipProvider对象提供用户界面,该对象与您的网站的用户数据存储进行通信,以在数据存储中创建新的用户帐户。 CreateUserWizard依赖MembershipProvider创建用户并在必要时禁用它们(参见msdn)。
因此,如果您使用CreateUserWizard,则必须使用成员资格提供程序。
如果您不想使用标准会员提供商,则应考虑创建Custom Membership Provider。
但是从您的问题来看,不清楚为什么您不想使用标准会员资格。可能值得考虑将标准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事件:
之后,您需要手动创建用户,例如在FinishButtonClick事件处理程序中。
希望它有所帮助。
答案 1 :(得分:0)
我遇到了同样的问题,我希望成员资格表,视图和存储过程在我的数据库中,因此您必须使用visual studio命令提示符运行以下命令并编写以下命令行:
Aspnet_regsql.exe -W
请注意,它是区分大小写的,然后会出现一个向导,允许您创建成员资格表,视图和存储过程
然后,您需要更新web.config文件以更新数据库连接字符串指向.mdf文件的连接字符串。