2012-08-07 4 views
0

У меня есть несколько файлов cookie с тем же именем, доменом и путем, но разные значения. Это не по дизайну - я пытаюсь исправить это, но не могу удалить их. Я пробовал несколько вариантов кода. Вот один:jQuery delete cookie не удаляется при перенаправлении

string[] cookies = Request.Cookies.AllKeys; 
HttpCookie cookie; 
string cookieName; 
string cookieValue; 
for (int i = 0; i < cookies.Count(); i++) 
{ 
    cookieName = Request.Cookies[i].Name; 
    if (cookieName == "ASP.NET_SessionId") 
    { 
    // Do not delete session cookie or we will be logged out 
    continue; 
    } 

    cookieValue = Request.Cookies[i].Value; 
    cookie = new HttpCookie(cookieName); 
    cookie.Value = ""; 
    cookie.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(cookie); 
} 

И вот еще:

string[] cookies = Request.Cookies.AllKeys; 
for (int i = 0; i < Request.Cookies.AllKeys.Count(); i++) 
{ 
    if (Request.Cookies[i].Name == "ASP.NET_SessionId") 
    { 
     // Do not delete session cookie or we will be logged out 
     continue; 
    } 

    Request.Cookies[i].Expires = DateTime.Now.AddDays(-1); 
} 

Когда я перечисляю печенье в Request.Cookies, «удаленные» печенье отображаться с датой истечения вчерашнего дня, но есть другие файлы cookie, которые отображаются с датой истечения 1/1/0001. Это те, которые просто не будут подсказывать и совершить поход.

Помощь с благодарностью.

+0

Чтобы выйти из системы, вы хотите очистить файл cookie аутентификации, например, вызвать FormsAuthentication.Signout() в коде C#. –

+0

- это случай, когда файлы cookie верны, например. $ .cookie («UserId», может быть $ .cookie («userid», – HatSoft

+0

Случаи верны, но, похоже, несколько копий нескольких критических файлов cookie. Я пытался удалить ВСЕ файлы cookie, но они продолжают поступать back –

ответ

1

Вы пробовали установить срок годности в прошлом вместо 1 дня?

Это сообщение на deleting cookies. В своем коде он устанавливает дату на 30 лет.

Установите домен на файлы cookie.

cookieValue = Request.Cookies[i].Value; 
    cookie = new HttpCookie(cookieName); 
    cookie.Value = ""; 
    cookie.Domain = "dev.domain.com"; 
    cookie.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(cookie); 
+1

Один день, один месяц, один год, один век - все в прошлом. Не проблема здесь. Проблема в том, что у меня есть несколько файлов cookie с тем же именем и разными доменами, но они отображаются как находящиеся в одном домене. –

+0

@BobJones Это поддомены? Куки-файлы из разных доменов не должны быть видны. Вы пытаетесь убить файлы cookie в дочернем домене из родительского домена? –

+0

существует доменная иерархия: dev.domain, test.domain и домен. Когда я читаю Request.Cookies в dev или test или domain, я хочу видеть только файлы cookie для этого домена, но вместо этого я вижу несколько экземпляров каждого файла cookie, но без какого-либо связанного имени домена, поэтому я не могу сказать, какой cookie я я читаю. –

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