Security 安全模型与现有数据库

Security 安全模型与现有数据库,security,asp.net-mvc-4,dbcontext,Security,Asp.net Mvc 4,Dbcontext,我已经用code first和DbContext创建了一个数据库 但是,这与新MVC4站点上的安全模型数据库是分开的 我的问题是,如何将现有数据库与安全模型结合起来,还是出于合理的原因将它们分开 例如,这是最好的解决方案吗 这将在我第一次运行应用程序时重新创建安全模型和角色 或者有其他方法可以做到这一点。我喜欢新的MVC和Simplemembership提供商就是因为这个原因。您可以非常轻松地将您的模型与asp.net帐户模型相结合 当您使用默认internet模板时,它会创建一个名为User

我已经用code first和DbContext创建了一个数据库

但是,这与新MVC4站点上的安全模型数据库是分开的

我的问题是,如何将现有数据库与安全模型结合起来,还是出于合理的原因将它们分开

例如,这是最好的解决方案吗

这将在我第一次运行应用程序时重新创建安全模型和角色


或者有其他方法可以做到这一点。

我喜欢新的MVC和Simplemembership提供商就是因为这个原因。您可以非常轻松地将您的模型与asp.net帐户模型相结合

当您使用默认internet模板时,它会创建一个名为UsersContext的上下文。要做一些简单的事情,比如向UserProfile对象添加附加字段以在数据库中跟踪,您需要做3件简单的事情

  • 将属性添加到模型(如果使用默认模板,则在帐户模型中)
  • 在帐户控制器的注册操作中,添加新字段,即:

    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) 更改注册表视图和模型以传递所需的所有信息

    当这首歌第一次完美无瑕,没有任何奇怪的错误时,我几乎哭了

    祝你好运