我将RavenDB设置作为我在MVC项目中选择的数据库。目前注册流程如下:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
我的数据库逻辑类中有一个方法,用于存储用户对象,例如User
:
public void SaveEntity(ModelBase entity)
{
using (var session = DocumentStore.OpenSession())
{
session.Store(entity);
session.SaveChanges();
}
}
ModelBase
是可以保存到数据库的所有内容的基础对象,包含用户名,密码,电子邮件等属性的User类也将是要保存的对象之一。
我的SaveEntity
方法是否足够?我将如何更改Register
以使用我的SaveEntity`方法来存储用户。我还想应用某种加密来存储密码。
答案 0 :(得分:0)
使用RavenDB,一切都可以保存到数据库中,没有真正使用ModelBase的东西,它看起来像3层架构时代的遗留物。
您可能需要阅读此内容:http://novuscraft.com/blog/ravendb-and-the-repository-pattern
此外,关于如何在MVC网站中使用RavenDB - 有一种更简单的方法来实现您正在寻找的SaveEntity功能:http://ravendb.net/kb/3/using-ravendb-in-an-asp-net-mvc-website