我想在创建新的asp.net Web应用程序时使用Visual Studio中默认包含的内置成员资格/身份验证系统。
我的问题是我有一个用户表... UserID,FirstName,LastName等,以及我想要使用的公司信息。如何将此表链接到我创建的新注册?
假设我创建了一个新注册。现在登录和密码数据存储在哪里?
有人能指出我正确的方向吗?
答案 0 :(得分:3)
本教程在开始时非常有用:Creating the Membership Schema in SQL Server。
如果您现有的公司数据库中基本上只有用户个人资料信息,则可能需要考虑创建custom Profile Provider。请注意,在使用Web应用程序项目时执行此操作会使用perculiarities。
如果您的数据库中还有其他信息通过外键密钥链接到用户,您可能会对此discussion感兴趣,了解如何将其与成员资格一起使用。
答案 1 :(得分:2)
默认情况下,成员资格信息存储在SQL数据库ASPNETDB.MDF中。您可以在App_data文件夹中找到此文件。
如果您想更改成员资格的行为方式,以及它使用的数据库和表格,我建议您创建自定义成员资格提供程序。
请参阅http://msdn.microsoft.com/en-us/library/aa479048.aspx或google asp.net自定义成员资格提供商:
如果您只是希望现有成员资格提供程序使用其他数据库,则可以运行aspnet_regsql实用程序:
请参阅http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx
这个使用实体框架codefirst的自定义成员资格提供程序示例帮助我开始:
答案 2 :(得分:1)
我谦虚的建议是,您只需创建一个单独的表格,并将其与您的用户表格相关联。因此,存储登录名和密码的位置没有变化。
本文可能会对您有所帮助:http://www.asp.net/security/tutorials/storing-additional-user-information-cs。看看吧。
附加文章:
http://www.4guysfromrolla.com/articles/101106-1.aspx
http://www.4guysfromrolla.com/articles/110310-1.aspx
希望这有帮助。
答案 3 :(得分:0)
感谢大家的回复,你们都给了我一些帮助我找出问题的见解。 我决定采取更简单的路线。
这就是我想出的。在Register.aspx.cs中:
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
TextBox txtFirstName = (TextBox)(RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("txtFirstName "));
string firstName= txtFirstName.Text;
... Insert new fields in database ....
}
并在CreateUserWizard控件中添加了控件。非常简单的解决方案。