我了解我在做登录功能的方式不安全。但因为我是新手,所以我不想先深入研究,而是首先以最简单和最基本的方式进行。在MVC中使用RavenDB的简单登录函数
到目前为止,我做了什么,我有一个管理模式
public class Admin
{
public string AdminUsername { get; set; }
public string Password { get; set; }
}
我有2次即AdminRegister.cshtml和AdminLogin.cshtml 我已经完成了注册部分,我知道密码不应该存储在数据库和密码散列中。但就目前而言,我只想以基本的方式完成登录功能。在控制器
其各自的行动方法是如下
public ActionResult AdminRegister(Admin model)
{
using (var store = new DocumentStore
{
Url = "http://localhost:8080/",
DefaultDatabase = "foodfurydb"
})
{
store.Initialize();
using (var session = store.OpenSession())
{
session.Store(model);
session.SaveChanges();
}
}
return RedirectToAction("Home");
}
[HttpPost]
public ActionResult AdminLogin(Admin model)
{
Admin login = new Admin();
using (var store = new DocumentStore
{
Url = "http://localhost:8080/",
DefaultDatabase = "foodfurydb"
})
{
store.Initialize();
using (var session = store.OpenSession())
{
var adminInput = session
.Query<Admin>()
.Where(u => u.AdminUsername.Equals(model.AdminUsername) && u.Password.Equals(model.Password));
if (adminInput != null)
{
}
}
}
return View();
}
对于登录的一部分,我认为我应该查询检查与特定的用户名和密码的用户是否在DB或不存在。然后,我卡住了,不知道如何比较登录输入和数据库中的数据!感谢有人引导我的人!只是一个简单的,但!非常感谢你。
了解用户是否存在第一
var count = session
.Query<Admin>()
.Where(u => u.AdminUsername == model.AdminUsername);
if (count > 0)
{
return RedirectToAction("AddRestaurant");
}
else
{
// user exist in db
return RedirectToAction("Home");
}
我设法找出登录字段的用户名是否在DB或不存在。如果是,它将登录,否则它将停留在主页上。但直到这个阶段,我还没有想到如何验证密码。感谢有人能指导我做到这一点。