2014-12-15 2 views
3

안녕하세요 사용자가 로그인 한 직후에 mvc5 응용 프로그램에서 쿠키를 설정하려고합니다. 브라우저가 닫힌 후에도 쿠키가 계속 유지 될 것으로 예상되지만 요청 된 쿠키는있는 것 같습니다. 브라우저를 닫은 후에는 null입니다 (로그인 직후 액세스를 시도하면 문제가 없습니다).asp.net mvc 5 쿠키가 로컬 서버에 저장되지 않음

public ActionResult Login(User u) 
    { 
     // this action is for handle post (login) 
     if (ModelState.IsValid) // this is check validity 
     { 
      using (RoadTexEntities rte = new RoadTexEntities()) 
      { 
       var v = rte.Users.Where(a => a.UserEmail.Equals(u.UserEmail) && a.password.Equals(u.password)).FirstOrDefault(); 
       if (v != null) 
       { 
        var checkBox = Request.Form["rememberMe"]; 
        if (checkBox == "on") 
        { 
         string user = JsonConvert.SerializeObject(v); 
         HttpCookie userCookie = new HttpCookie("user"); 
         userCookie.Values.Add("details", user); 
         userCookie.Expires.AddDays(1); 
         Response.Cookies.Add(userCookie); 
        } 
        Session["username"] = v.UserFirst; 
        return RedirectToAction("AfterLogin"); 
       } 
       else 
       { 
        ViewBag.Message = "Invalid Login Credentials"; 
       } 
      } 
     } 
     return View(u); 
    } 

public ActionResult Index(){ 

     HttpCookie userCookie = Request.Cookies["user"]; 
     if (userCookie != null) 
     { 
      return RedirectToAction("AfterLogin"); 
     } 
     else 
     { 
      return RedirectToAction("Login"); 
     } 
    } 

이미 유사한 질문을 확인하고 브라우저 설정을 확인,하지만 난 쿠키를 요청하면 아직도 내가 널 무엇입니까 : 여기

내가 쿠키를 생성하는 방법이다.

userCookie.Expires = DateTime.Now.AddDays(1); 

+0

'Expires'는 쿠키에 대한 값을 검사합니다. - AddDays' *는 새로운 datetime을 반환하고, 호출 된 datetime을 수정하지 않습니다. –

답변

2

변경을 당신의 이전 코드는 쿠키의 만료 시간을 설정하지 않기 때문에.

관련 문제