我正在尝试在 Mvc 4 应用程序中编写自己的帐户注册逻辑。我从一个基本模板开始,而不是互联网模板。目前我有一个Tenant
具有许多属性的模型。首先使用代码,我在我的数据库中创建了一个租户表(随着时间的推移会添加更多模型和表 - 我只是想让一个先工作)。
我创建了一个RegisterTenantModel - 类似于 Internet 模板中的那个,除了我使用的是电子邮件而不是用户名。
public class TenantRegisterModel
{
[Required]
[Display(Name="Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
在下面的RegisterTenant方法中,我想:
- 允许用户(租户)最初仅使用电子邮件地址和密码进行注册,并且仅在通过电子邮件验证其帐户后才允许他们输入与租户相关的其余属性,因此使用
TenantRegisterModel
.
在调用Membership.CreateUser
时,我怎么知道model.Email
并将model.Password
被添加到Tenant
表中?同样,如果我对 a 执行与上述相同的场景,Landlord
我怎么知道输入的详细信息已添加到Landlord
表中?有没有办法Membership.CreateUser
我也可以指定要添加用户详细信息的表?
注册租户:
public ActionResult RegisterTenant(TenantRegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register a tenant account
MembershipCreateStatus createStatus;
Membership.CreateUser(model.Email, model.Password);
// ...
}
}
我当然有一个上下文类,目前有public DbSet<LetLord.Models.Tenant> Tenants { get; set; }
,那么如果我有多个 DbSet,我如何知道正在添加用户详细信息的表?