如何使用ASP.Net成员资格提供程序添加额外字段?

Mag*_*age 11 asp.net-membership

我有一个使用ASP.NET成员资格提供程序的基本应用程序 默认情况下,您可以使用一些字段,如用户名,密码,记住我.

如何添加到asp.net成员资格提供程序,以便我可以在寄存器部分添加一个额外的字段"地址"并将其保存到数据库中?

在帐户模型中创建用户时,我目前看到以下内容:

public MembershipCreateStatus CreateUser(string userName, string password,
   string email)
{
   if (String.IsNullOrEmpty(userName))
   { throw new ArgumentException("Value cannot be null or empty.", "userName"); }
   if (String.IsNullOrEmpty(password))
   { throw new ArgumentException("Value cannot be null or empty.", "password"); }
   if (String.IsNullOrEmpty(email))
   { throw new ArgumentException("Value cannot be null or empty.", "email"); }

   MembershipCreateStatus status;
   _provider.CreateUser(userName, password, email, null, null, true,
       null, out status);

   return status;
}
Run Code Online (Sandbox Code Playgroud)

在创建用户功能中,我还想保存用户的"地址".

在register.aspx中,我添加了以下内容:

<div class="editor-label">
    <%: Html.LabelFor(m => m.Address) %>
</div>
<div class="editor-field">
    <%: Html.TextAreaFor(m => m.Address) %>
</div>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Sco*_*ell 9

正如jwsample所述,您可以使用配置文件提供程序.

或者,您可以创建自己的表来存储其他与用户相关的信息.这是一个更多的工作,因为你已经开始创建自己的表并创建代码来获取和保存这些表的数据,但我发现以这种方式使用自定义表允许更大的灵活性和更高的可维护性而不是Profile Provider(特别是默认的Profile Provider,SqlProfileProvider,它以低效,非规范化的方式存储配置文件数据).

看一下本教程,我将逐步完成此过程:存储其他用户信息.