2012-01-31 5 views
0

У меня есть файл cookie, который устанавливается, когда пользователь обращается к странице/auth/моего приложения MVC3.Cookie становится сессией по обратной передаче

Когда пользователь отправляет данные формы обратно на сервер, я изменяю файл cookie, изменяя его значение. Затем я использую Response.Cookies.Set(mycookie);, чтобы изменить cookie на значение mycookie.

Проблема, с которой я столкнулась, заключается в том, что когда страница сначала загружается, запрос «получить», cookie появляется как файл cookie. Получив ответ после ответа, cookie теперь появляется как сеанс с совершенно другой датой истечения срока действия.

КОД ::

[HttpGet] 
public ActionResult Auth() 
{ 
    var cookie = Request.Cookies.Get(login_cookie); 
    if (cookie == null || string.IsNullOrEmpty(cookie.Value)) 
    { 
     Response.Cookies.Add(new HttpCookie(login_cookie) { Expires = DateTime.Now.AddMinutes(5), Value = "0", HttpOnly = true, }); 
    } 
    ..... 

    return View(); 
} 


[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Index(Login loginform) 
{ 
    int attempts = 0; 
    HttpCookie login_cookie_data = Request.Cookies.Get(login_cookie); 

    .... 

    Response.Cookies.Set(login_cookie_data); 
    return View(); 
} 

Решенный

Вопросы была с машиной. Я перезагружаюсь, и он сортировал все проблемы.

+1

Я заблудился на «печенье появляется как печенье». Во-первых, что вы называете «postback»? (в MVC такого не бывает). И что вы имеете в виду, когда «cookie теперь появляется на сессии»? – vtortola

+0

Какое значение cookie вы меняете? Можете ли вы опубликовать код, который вы используете для этого? – markpsmith

+0

@markpsmith Я добавил несколько примеров кода. –

ответ

1

Добавьте корневой путь при создании своего файла cookie в конструкторе cookie.

... new HttpCookie(login_cookie) { Path = "/", ... 

 Смежные вопросы

  • Нет связанных вопросов^_^