Exemplo n.º 1
0
 public IActionResult Register(User model)
 {
     if (ModelState.IsValid)
     {
         // Java try(sqlSession){} catch(){}
         // C#
         using (var db = new ASPnetNoteDbContext())
         {
             db.Users.Add(model);
             db.SaveChanges();
         }
         return(RedirectToAction("Index", "Home"));
     }
     return(View(model));
 }
Exemplo n.º 2
0
        public IActionResult Login(LoginViewModel model)
        {
            // ID, Password: 필수
            if (ModelState.IsValid)
            {
                using (var db = new ASPnetNoteDbContext())
                {
                    // Linq - 메서드 체어닝(Method Chaining)
                    // => : A go to B

                    // 해당 방식으로 작성 시 메모리 누수가 발생하여 성능 상 이득을 가져가기 힘듬.
                    //var user = db.Users
                    //    .FirstOrDefault(u => u.UserId == model.UserId && u.UserPassword == model.UserPassword);

                    // Equals 메소드를 사용하여 내용 비교 시 메모리 누수가 발생하지 않도록 한다.
                    var user = db.Users.FirstOrDefault(
                        u => u.UserId.Equals(model.UserId) &&
                        u.UserPassword.Equals(model.UserPassword)
                        );

                    if (user != null)
                    {
                        // 로그인에 성공했을 때
                        //HttpContext.Session.SetInt32(key, value);
                        HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo);
                        return(RedirectToAction("LoginSuccess", "Home"));
                    }
                }

                // 로그인에 실패했을 때
                ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다.");
            }


            return(View(model));
        }