Вот некоторый код, который делает куки, не могли бы вы показать мне, как его восстановить? - PullRequest
1 голос
/ 09 ноября 2009
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(7);

Теперь, какой код я буду делать позже в своем веб-приложении, когда пользователь нажимает кнопку выхода из системы, чтобы уничтожить этот файл cookie?

ЗАМЕТЬТЕ, ЧТО Я ПРОБОВАЛ ЭТО УЖЕ С БЕЗ КОММЕНТАРИРОВАННЫХ ЛИНИЙ, И ЭТО НЕ РАБОТАЕТ

    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
    System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-1);

Ответы [ 4 ]

5 голосов
/ 09 ноября 2009

Что я делаю, это устанавливаю его снова, с пустым значением и датой истечения в прошлом:

var context = System.Web.HttpContext.Current; 

context.Response.Cookies["ssocookies"].Domain = context.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
context.Response.Cookies["ssocookies"].Value = "";
context.Response.Cookies["ssocookies"].Path = "~/";
context.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-1);
2 голосов
/ 10 ноября 2009

Метод FormsAuthentication.SignOut делает что-то вроде:

   HttpCookie cookie = new HttpCookie(FormsCookieName, str);
    cookie.HttpOnly = true;
    cookie.Path = _FormsCookiePath;
    cookie.Expires = new DateTime(1999, 10, 12);
    cookie.Secure = _RequireSSL;
    if (_CookieDomain != null)
    {
        cookie.Domain = _CookieDomain;
    }
    current.Response.Cookies.RemoveCookie(FormsCookieName);
    current.Response.Cookies.Add(cookie);

В любом случае, использование что-то вроде Fiddler для проверки вашего http-трафика должно дать вам представление о том, что происходит.

2 голосов
/ 09 ноября 2009

Срок действия файлов cookie истекает путем установки срока их действия в прошлом.

        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-7);
0 голосов
/ 09 ноября 2009
System.Web.HttpContext.Current.Response.Cookies.Remove("ssocookies");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...