Что вам не хватает, так это то, что когда вы обновляете cookie с помощью SetValue, вы пишете в коллекцию Response.Cookies.
Когда вы вызываете GetValue, вы читаете из коллекции Request.Cookies.
Вам необходимо хранить информацию о переходных процессах таким образом, чтобы вы получали доступ к текущей информации, а не только непосредственно к куки-файлу запроса.
Один из возможных способов сделать это - написать класс-оболочку, который с грубым псевдо-кодом будет похож на
public CookieContainer(HttpContext context)
{
_bobValue = context.Request.Cookies["bob"];
}
public Value
{
get { return _bobValue; }
set {
_bobValue = value;
_context.Response.Cookies.Add(new Cookie("bob", value) { Expires = ? });
}
}
Я столкнулся с необходимостью сделать подобный код только на этой неделе. Модель обработки печенья очень странная.