[英]Log in process using entity framework asp.net mvc
我想在我的項目中進行登錄密碼驗證。當用戶單擊登錄按鈕時,編譯器會轉到此方法
public ActionResult VerifyPassword(User user)
{
var givenPassword =user.Password;
var givenUserName=user.UserName;
//now i need compare password
var myUser=db.User.Find(somevalue)//find user from database,
But how can i do this????Because somevalue needs to be a Primary Key
}
如果我做錯了什么。請指出我正確的方向我在網上搜索了很多。但是沒有找到使用實體框架來完成這個的教程。
實際上,您不需要主鍵來匹配數據庫中的用戶。
您可以使用其用戶名(應該是唯一的)在數據庫中查找其記錄。
嘗試這樣的事情:
public ActionResult VerifyPassword(User user)
{
//The ".FirstOrDefault()" method will return either the first matched
//result or null
var myUser = db.Users
.FirstOrDefault(u => u.Username == user.Username
&& u.Password == user.Password);
if(myUser != null) //User was found
{
//Proceed with your login process...
}
else //User was not found
{
//Do something to let them know that their credentials were not valid
}
}
還要考慮對模型驗證進行一些研究,查看ModelState.IsValid
是一個很好的開始。
它應該像這樣修改......
public ActionResult VerifyPassword(User user)
{
//The ".FirstOrDefault()" method will return either the first matched
//result or null
User myUser = dbContext.Users.FirstOrDefault
(u => u.Username.Equals(user.Username) && u.Password.Equals(user.Password));
if (myUser != null)
{
//User was found
//Proceed with your login process...
}
else //User was not found
{
//Do something to let them know that their credentials were not valid
}
}
public ActionResult Login(StudentLogin sl)
{
if (sl.Email != null)
{
if (ModelState.IsValid) // this is check validity
{
StudentEntities1 se = new StudentEntities1();
var v = se.StudentLogins.Where(a => a.Email.Equals(sl.Email) && a.Password.Equals(sl.Password)).FirstOrDefault();
if (v != null)
{
Session["LogedUserID"] = v.Id.ToString();
//Session["LogedUserFullname"] = v.FullName.ToString();
return RedirectToAction("Success", "Student");
}
}
return View(sl);
}
else
{
return View();
}
}
public ActionResult Login(Login_T l)
{
using (AppHREntities db = new AppHREntities())
{
var obj = db.Login_T.Where(a => a.UserName.Equals(l.UserName) && a.Password.Equals(l.Password) && l.Type.Equals("HR")).Count();
var obj1 = db.Login_T.Where(a => a.UserName.Equals(l.UserName) && a.Password.Equals(l.Password) && l.Type.Equals("USER")).Count();
if (obj > 0)
{
MessageBox.Show("SUCESSFULLY LOGGED IN.");
return RedirectToAction("../Home/HR_Dashboard");
}
else if(obj1 > 0)
{
MessageBox.Show("SUCESSFULLY LOGGED IN.");
return RedirectToAction("../Home/Emp_Dashboard");
}
else
{
MessageBox.Show("WRONG PASSWORD.");
return RedirectToAction("Index");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.