我已经创建了一个带有代码优先和 DbContext 的数据库。
但是,这与新 MVC 4 站点上的安全模型数据库分开。
我的问题是如何将现有数据库与安全模型结合起来,或者出于正当理由将它们分开
当我第一次运行应用程序时,这将重新创建安全模型和角色。
或者有没有其他方法可以做到这一点。
我已经创建了一个带有代码优先和 DbContext 的数据库。
但是,这与新 MVC 4 站点上的安全模型数据库分开。
我的问题是如何将现有数据库与安全模型结合起来,或者出于正当理由将它们分开
当我第一次运行应用程序时,这将重新创建安全模型和角色。
或者有没有其他方法可以做到这一点。
出于这个原因,我喜欢新的 MVC 和 Simplemembership Provider。您可以很容易地将您的模型与 asp.net 帐户模型结合起来。
当您使用默认 Internet 模板时,它会创建一个名为 UsersContext 的上下文。要执行一些简单的操作,例如向 UserProfile 对象添加其他字段以在数据库中进行跟踪,您需要做 3 件简单的事情。
在帐户控制器上的注册操作中,添加新字段 IE:
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
var db = new UsersContext();
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { FirstName = model.FirstName, LastName = model.LastName, Address = model.Address, Company = model.Company, Phone = model.Phone, Country = model.Country, City = model.City, State = model.State, Zip = model.Zip });
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Dashboard");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
注意 new 关键字,我从传递的模型中获取值并将它们与模型匹配。(模型绑定可能会也可能不会在这里工作,但我还没有测试过)
3)更改注册视图和模型以传递所需的所有信息
当这第一次完美无缺且没有奇怪错误时,我几乎哭了。
祝你好运