2009-10-02 3 views
2

У клиента есть сайт на a.url.com. Клиент создает cookie с хостом как «.url.com» и путь как «/». Клиент перенаправляет нас на b.url.com. У клиента есть проблема с кодировкой, которая требует от нас удалить cookie (длинный рассказ).Проблемы с перезаписью файла cookie

Следующий код не регулирует срок годности в нашей тестовой или производственной среде, но работает нормально локально.

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

Любые идеи?

+0

Мы провели еще несколько исследований. Файл cookie фактически создан из www1, www2 или www3.url.com, хотя это не важно. Мы проверили, что когда мы вручную создаем файл cookie и устанавливаем значение хоста на то же значение, что и наш домен (например, b.url.com), код обновляет файл cookie. Он не работает, если значение хоста установлено на более общий «.url.com». Мысли? –

ответ

5

Мы выяснили это. Нам нужно было добавить одну строку кода для ручной настройки домена. Теперь имеет смысл.

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Domain = ".url.com"; 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

Это точно я собирался предложить. – Nirlep

0

является ли это сторонним печеньем? Если это так, параметры безопасности по умолчанию в IE будут препятствовать написанию файлов cookie в зоне «Интернет», но это разрешено в вашей локальной зоне.

+0

Нет. Они оба используют один и тот же домен, но имеют разные хосты записи, такие как dog.animal.com и cat.animal.com. –

+0

Файл cookie задается страницей, на которой расположено несколько каталогов. Cookie устанавливается по адресу http://a.url.com/a/b/page. После перенаправления (разные IP-адреса и разные серверы) наш код происходит по адресу http://b.url.com/c/page. Я не думаю, что это важно из-за пути к файлу cookie, установленного в «/», но кто знает. –

0

Вот взломать. Я просто размещаю это на случай, если вы узнаете, что не можете делать то, что хотите, из-за какой-то проблемы с безопасностью, не позволяя вам справиться с проблемой на втором сайте.

Вы можете отправить запрос на первый сайт, чтобы очистить файл cookie посредством перенаправления и вернуть сайт обратно. Как я уже сказал, это очень хакерское (или, я полагаю, маркетинг будет называть его межсайтовой совместной защитой).

Надеюсь, что есть лучший подход, но, по крайней мере, у вас есть альтернатива, если нет других.

0

Если вы не можете заставить его работать на C#, вы можете рассмотреть возможность просмотра файлов cookie в javascript.

Gary

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