Здесь обратили внимание на очень интересный момент с датами.
cookie.Expires = new DateTime(DateTime.Today.Year+1,
DateTime.Today.Month,
DateTime.Today.Day);
Синтаксически здесь всё правильно. Но есть ошибка. Она не зависит от языка программирования, вернее зависит не очевидным образом. (
Где же она? )