我在基于 MVC2 框架的项目中使用具有 OpenId 实现的 Membership API。除了用户名之外,我还需要在注册时与用户关联一些其他字段。
我不确定,但我认为 asp.net 中的 Profile 系统是为这种类型的需求而构建的。此外,我还看到一个包含其他名为“aspnet_profile”的成员资格表的表。
我在应用程序 web.config 中添加了以下设置以启用配置文件:
<profile enabled="true">
<properties>
<add name="FullName" allowAnonymous="false"/>
</properties>
</profile>
如前所述,应用程序需要一些额外的数据来与用户相关联,所以在使用 Membership API 创建用户时,我添加了几行代码来进入配置文件表
System.Web.Security.MembershipCreateStatus status = MembershipService.CreateUser(userModel.UserName, userModel.Password, userModel.UserName);
if (status == System.Web.Security.MembershipCreateStatus.Success)
{
FormsService.SignIn(userModel.UserName, true);
Session["Username"] = userModel.UserName;
dynamic profile = ProfileBase.Create(MembershipService.GetUser(userModel.UserName).UserName);
profile.FullName = userModel.UserFullName;
profile.Save();
RedirectToAction("Tech", "Home");
}
但是我没有看到数据库的 aspnet_profile 表中添加了任何行。另外,我想问一下这是否是添加附加数据和默认会员数据的首选方式