2014-01-14 4 views
0

Вопрос довольно прост:Как заменить HttpCookie в MVC3

Как заменить HttpCookie в MVC3?(Предположим, что мы имеем доступ к экземпляру HttpContext)

+0

Что вы пытались решение? – MikeSW

+0

cookie содержит AuthenticationTicket, мне нужно обновить некоторые данные внутри AuthenticationTicket, а затем снова добавить его в файл cookie. –

ответ

1

Используйте SetCookie

var cookie = Request.Cookies["cookieName"]; 
if (cookie != null) 
{ 
    cookie.Value = "new value"; 
    Response.SetCookie(cookie); 
} 
+0

У меня вопрос. При вызове 'Response.Cookies.Remove (« CookieName »);' Браузер клиентов все еще держит этот файл cookie? Я видел несколько примеров с Expiration = DateTime.Now.AddDays (-1) ... Можете ли вы объяснить последствия обоих, пожалуйста? –

+0

@ Христианский да, сервер не имеет контроля над клиентом. Все 'Remove' делает, убедитесь, что cookie не отправлен с запросом. Единственный способ удалить браузер из файла cookie - это его срок действия. – James

+0

Я буду делать некоторые тесты, если работает, я помечаю это как ответ. Спасибо! –