我瞭解我在做登錄功能的方式不安全。但因爲我是新手,所以我不想先深入研究,而是首先以最簡單和最基本的方式進行。在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或不存在。如果是,它將登錄,否則它將停留在主頁上。但直到這個階段,我還沒有想到如何驗證密碼。感謝有人能指導我做到這一點。