会员资格在asp.net中使用createuserwizard和登录控件需要配置文件帮助

时间:2012-05-10 04:58:47

标签: asp.net asp.net-membership login-control createuserwizard

我正在开发一个项目,我有一个创建用户的任务(使用CreateUserWizard控件)。我必须将用户保存在SQL Server数据库的特定表中。

同时创建一个登录(使用Login控件),并在登录后进行身份验证,它应该保存配置文件信息。

到目前为止,我已经创建了继承ProfileBase的CustomProfile。还创建了3个aspx页面。

  1. 的Login.aspx
  2. CreateUser.aspx
  3. Default.aspx的
  4. 我的CustomProfile如下所示:

    public class UserProfile : ProfileBase
    {
        static public UserProfile CurrentUser
        {
            get
            {
                return (UserProfile)(ProfileBase.Create(Membership.GetUser().UserName));
            }
        }
    
        public string FirstName
        {
            get { return (string)base["FirstName"]; }
            set { base["FirstName"] = value; Save(); }
        }
    
    
        public string LastName
        {
            get { return (string)base["LastName"]; }
            set { base["LastName"] = value; Save(); }
        }
    
        public DateTime DateOfBirth
        {
            get { return (DateTime)base["DateOfBirth"]; }
            set { base["DateOfBirth"] = value; Save(); }
        }
    
        public ContactInfo Contact
        {
            get { return (ContactInfo)base["Contact"]; }
            set { base["Contact"] = value; Save(); }
        }
    }
    

    我使用了aspnet_regsql.exe,它在sql server中创建了多个表,并将数据存储在这些表中,并且工作正常。我想将信息保存到我的表中,例如。 tblUserInfo。我该怎么办?我检查了多个论坛,但没有运气。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

首先,aspnet_regsql.exe已过时。您可能需要考虑使用ASP.Net Universal Providers

我认为您的问题是 将信息保存到我的表格中,例如。 tblUserInfo

您可以收集用户信息并自行保存,而不是使用CreateUserWizard。

1. Creating a tblUserInfo table (alternative solution to ASP.Net Profile)

2. Inserting UserInfo into tblUserInfo after creating a user

<asp:TextBox ID="UsernameTextBox" runat="Server" /> 
<asp:TextBox ID="EmailTextBox" runat="Server" /> 
<asp:TextBox ID="PasswordTextBox" runat="Server" /> 
<asp:TextBox ID="PasswordQuestionTextBox" runat="Server" /> 
<asp:TextBox ID="PasswordAnswerTextBox" runat="Server" /> 
<asp:TextBox ID="FirstNameTextBox" runat="Server" /> 
<asp:TextBox ID="LastNameTextBox" runat="Server" /> 

string username = UsernameTextBox;  
string password = PasswordTextBox.text; 
string email = EmailTextBox.text; 
string passwordQuestion = PasswordQuestionTextBox.text; 
string passwordAnswer = PasswordAnswerTextBox.text; 
bool isApproved = true; 

MembershipCreateStatus status; 

MembershipUser membershipUser = System.Web.Security.Membership.CreateUser(
username, password, email, passwordQuestion, passwordAnswer, isApproved, out status); 

if (status != MembershipCreateStatus.Success) 
   throw new Exception(status.ToString()); 

// Save the rest of the user info to tblUserInfo with userId
Guid userId = (Guid)membershipUser.ProviderUserKey;

3. How to make UserInfo available for login user?