Удалить cookie ASP.NET
От: corpse56  
Дата: 27.02.20 17:13
Оценка:
Здравствуйте!

Есть одно веб-приложение. Это личный кабинет. на домене http://main.test.ru/ Оно получает заказ в виде куки из другого приложения на домене http://second.test.ru
Куку получаю без проблем.
Собственно я не знаю зачем указал примеры доменов, может это и не пригодится.

После обработки заказа хочу удалить куку, чтобы каждый раз её не считывать. Знаю,что куку удалить нельзя, но можно выставить Expired в прошлое.

Делал вот по этому примеру
Не помогло. кука не удаляется.
вот мой код в Page_Load:
HttpCookie orderCookie = Request.Cookies.Get(@"orderCookie");
...
//manipulate order
...
HttpCookie myCookie = new HttpCookie(@"orderCookie");
myCookie.Expires = DateTime.Now.AddDays(-1);
myCookie.Value = "";
Response.Cookies.Add(myCookie);


как осталась так и осталась. не меняется ни значение, ни время жизни.

потом подумал, что javascript поможет и прописал тоже в Page_Load:
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "delCookie",
                    @"document.cookie = 'orderCookie=; Max-Age=-99999999;';", true);

и всё равно кука остаётся.

Подскажите, пожалуйста, что я делаю не так?
спасибо.

по форуму не нашёл, но, конечно, находил множество топиков на других форумах. но так ничего и не помогло.
использую ASP.NET 4
Re: Удалить cookie ASP.NET
От: corpse56  
Дата: 28.02.20 17:39
Оценка:
Здравствуйте, corpse56, Вы писали:

C>вот мой код в Page_Load:

C>
C>HttpCookie orderCookie = Request.Cookies.Get(@"orderCookie");
C>...
C>//manipulate order
C>...
C>HttpCookie myCookie = new HttpCookie(@"orderCookie");
C>myCookie.Expires = DateTime.Now.AddDays(-1);
C>myCookie.Value = "";
C>Response.Cookies.Add(myCookie);
C>


C>как осталась так и осталась. не меняется ни значение, ни время жизни.


Это так и не олучилось заставить работать, хотя везде пишут, что должно.




C>потом подумал, что javascript поможет и прописал тоже в Page_Load:

C>
C>ScriptManager.RegisterStartupScript(Page, Page.GetType(), "delCookie",
C>                    @"document.cookie = 'orderCookie=; Max-Age=-99999999;';", true);
C>



это получилось. дело было в том, что нужно было указать path и domain. и без кавычек:
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "delCookie",
                "document.cookie = \"orderCookie = test; max-age = -999; path =/; domain =.test.ru\"", true);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.