Exemplo n.º 1
0
        public IActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)                        //null허용x인 필수값들 모두 받았는지? -> 사용자 이름도 required기때문에 오류남, 그래서 뷰모델 따로만들어줌
            {
                using (var db = new AspnetNoteDBContext()) //오픈, 커넥션 후 자동으로 닫기위해 using 사용
                // sql에 접근하는 db 라는 변수 생성.
                {
                    // Linq 쿼리식
                    // => 는 go to
                    //var user = db.Users.FirstOrDefault(u => u.UserId == model.UserId && u.UserPassword == model.UserPassword);
                    var user = db.Users
                               .FirstOrDefault(u => u.UserId.Equals(model.UserId) &&
                                               u.UserPassword.Equals(model.UserPassword));
                    //equals를 쓰는 이유는, 변수생성해서 메모리 할당 안해도 되기때문.

                    if (user != null)
                    {
                        //로그인 성공 시
                        //HttpContext.Session.SetInt32(key, value);
                        HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo);
                        return(RedirectToAction("LoginSuccess", "Home"));     // 로그인 성공 페이지로 이동, return이기 떄문에 뒤의 구문 안탐.
                    }
                    //로그인 실패 시
                    ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다.");
                }
                return(RedirectToAction("index", "Home")); //Home컨트롤러의 index액션으로 넘김 (view)
            }
            return(View(model));
        }
Exemplo n.º 2
0
 public IActionResult Login(LoginViewModel model)
 {
     //ID와 비밀번호 - 필수
     if (ModelState.IsValid)
     {
         using (var db = new AspnetNoteDBContext())
         {
             // Linq 쿼리식 - 메서드 체이닝
             // 람다식 => : A Go To B
             // u -> 익명 인수
             // == 비교는 메모리 누수가 발생함.
             //var user = db.Users.FirstOrDefault(u => u.UserId == model.UserId && u.UserPassword == model.UserPassword);
             var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword));
             //var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId));
             if (user != null)
             {
                 //로그인에 성공했을 때
                 //HttpContext.Session.SetInt32(string key, int value); key - 식별자 value - 사용자 정보
                 HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo);
                 return(RedirectToAction("LoginSuccess", "Home"));    //로그인 성공 페이지로 이동
             }
             //else
             //{
             //사용자 ID 자체가 회원가입 X 경우
             //ModelState.AddModelError(string.Empty, "사용자 ID가 존재하지 않습니다.");
             //}
         }
         //로그인에 실패했을 때
         ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다.");
     }
     return(View(model));
 }
Exemplo n.º 3
0
        public IActionResult Login(LoginViewModel model)
        {
            // ID, 비밀번호 - 필수
            if (ModelState.IsValid)
            {
                using (var db = new AspnetNoteDBContext())
                {
                    var user = db.Users
                               .FirstOrDefault(u => u.UserId.Equals(model.UserId) &&
                                               u.UserPassword.Equals(model.UserPassword));

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

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

            return(View(model));
        }
Exemplo n.º 4
0
        public IActionResult Add(Note model)
        {
            if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
            {
                //로그인이 안된 상태
                return(RedirectToAction("Login", "Account"));
            }

            model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString());

            if (ModelState.IsValid)
            {
                using (var db = new AspnetNoteDBContext())
                {
                    db.Notes.Add(model);
                    if (db.SaveChanges() > 0)
                    {
                        return(Redirect("Index"));
                    }
                    //db.SaveChanges();   //Commit
                }
                ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다.");
            }
            return(View(model));
        }
Exemplo n.º 5
0
 /// <summary>
 /// 게시판 리스트
 /// </summary>
 /// <returns></returns>
 public IActionResult Index()
 {
     using (var db = new AspnetNoteDBContext())
     {
         var list = db.Notes.ToList();
         return(View(list));
     }
 }
Exemplo n.º 6
0
 [HttpPost]  //post방식으로 전송했을 때의 메서드 오버로딩
 public IActionResult Register(User model)
 {
     if (ModelState.IsValid) //null허용x인 필수값들 모두 받았는지?
     {
         using (var db = new AspnetNoteDBContext())
         {
             db.Users.Add(model);
             db.SaveChanges();
         }
         return(RedirectToAction("index", "Home")); //Home컨트롤러의 index액션으로 넘김 (view)
     }
     return(View());
 }
Exemplo n.º 7
0
 public IActionResult Register(User model)
 {
     if (ModelState.IsValid)
     {
         using (var db = new AspnetNoteDBContext())
         {
             db.Users.Add(model);
             db.SaveChanges();
         }
         return(RedirectToAction("Index", "Home"));
     }
     return(View(model));
 }
Exemplo n.º 8
0
        /// <summary>
        /// 게시판 리스트
        /// </summary>
        /// <returns></returns>
        public IActionResult Index()
        {
            if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
            {
                //로그인이 안된 상태
                return(RedirectToAction("Login", "Account"));
            }

            using (var db = new AspnetNoteDBContext())
            {
                var list = db.Notes.ToList();
                return(View(list)); //view 안에 무언갈 담게되면 그 담은 것을 model이라고 인식함. VIEW 창에 가서는 model쓸것!
            }
        }
Exemplo n.º 9
0
        /* 게시글 수정인데... 어떻게 코딩해야 할지 모르겠다ㅠㅠ
         * [HttpPost]
         * public IActionResult Edit(Note model)
         * {
         *  if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == UserNo)
         *  {
         *      //작성자가 아닌 상태
         *      ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('게시글 작성자만 수정할 수 있습니다.')", true);
         *      return RedirectToAction("Index", "Note");
         *  }
         *  model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString());
         *
         *  if (ModelState.IsValid)
         *  {
         *      using (var db = new AspnetNoteDBContext())
         *      {
         *          db.Notes.Add(model);
         *          if (db.SaveChanges() > 0) // commit을 해 주는 것. _ 무슨개념이지..?
         *          {
         *              return Redirect("Index"); // = return RedirectToAction("Index", "Note");
         *          }
         *      }
         *      ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다."); //modelstate에 에러에 대한 메세지를 추가
         *  }
         *  return View(model);
         * }*/

        /// <summary>
        /// 게시판 상세
        /// </summary>
        /// <param name="noteNo"></param>
        /// <returns></returns>
        public IActionResult Detail(int noteNo)
        {
            //로그인이 안된 상태
            if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            //로그인 된 상태
            using (var db = new AspnetNoteDBContext())
            {
                var note = db.Notes.FirstOrDefault(n => n.NoteNo.Equals(noteNo));
                return(View(note));
            }
        }
Exemplo n.º 10
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();
                }
                //HomeController의 Index View로 넘긴다.
                return(RedirectToAction("Index", "Home"));
            }
            return(View());
        }
Exemplo n.º 11
0
        public IActionResult Add(Note model)
        {
            if (ModelState.IsValid)
            {
                using (var db = new AspnetNoteDBContext())
                {
                    db.Notes.Add(model);
                    if (db.SaveChanges() > 0)
                    {
                        return(Redirect("index")); // 동일한 컨드롤일경우
                    }
                }

                ModelState.AddModelError(string.Empty, "게시물을 저장할 수 없습니다.");
            }

            return(View());
        }