Asp.net HttpCookie Чтение / запись проблемы - PullRequest
0 голосов
/ 22 сентября 2011

Я искал решение этой проблемы, но у меня его не было. Кстати, я не могу понять причину моей проблемы.

Проблема:

Мое веб-приложение имеет страницу входа и получает идентификатор зарегистрированного пользователя из файла cookie. Он работал раньше, но 5-6 дней назад из-за чего-то изменился, он не работал с IE. Теперь он не работает ни с одним браузером.

Я вижу печенье в Chrome. При просмотре с помощью Internet Explorer Developer Tool иногда файл cookie записывается, но все еще не может быть прочитан IE

Мое веб-приложение работает на Windows Server 2008 R2 BTW

Установить мой web.config:

<httpCookies domain=".domainname.com" httpOnlyCookies="false" requireSSL="false" />

Вот мой код SetCookie

<!-- language: c# -->
string uId = "userID";
DateTime expireDate = DateTime.Now.AddDays(3);
HttpContext.Current.Response.Cookies["cookieName"]["uID"] = uId;
HttpCookie aCookie = new HttpCookie("cookieName");

aCookie.Values["uID"] = uId;
aCookie.Path = "/";
aCookie.Expires = expireDate;
aCookie.HttpOnly = false;
aCookie.Domain = "domainname.com";
aCookie.Name = "cookieName";
HttpContext.Current.Response.Cookies.Add(aCookie);

А этот код GetCookie

<!-- language: c# -->
if (HttpContext.Current.Request.Cookies["cookieName"] != null)
{
    System.Collections.Specialized.NameValueCollection UserInfoCookieCollection;
    UserInfoCookieCollection = HttpContext.Current.Request.Cookies["cookieName"].Values;
    userID = HttpContext.Current.Server.HtmlEncode(UserInfoCookieCollection["uID"]);
}

Сценарий:

пытается войти

Сработал метод SetCookie

В конце метода SetCookie есть два куки "cookieName" и «ASP.NET SessionId»

Сработал метод GetCookie

Существует только "ASP.NET SessionId" и значение сеанса остается тем же

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 01 мая 2014

Этот поставил меня в тупик.Но удалось решить это следующим образом.Так что в основном установка срока действия как части инициализатора не работает.Установка его после добавления куки в объект ответа работает!

enter image description here

0 голосов
/ 23 сентября 2011

Моя проблема решена.Изменил мой код на этот

            string uId = "userID";
            DateTime expireDate = DateTime.Now.AddDays(3);

            var httpCookie = HttpContext.Current.Response.Cookies["cookieName"];
            if (httpCookie != null)
            {
                httpCookie["uID"] = uId;

                HttpContext.Current.Response.Cookies.Add(httpCookie);
            }
            else
            {
                HttpCookie aCookie = new HttpCookie("cookieName");
                aCookie.Values["uID"] = uId;
                aCookie.Expires = expireDate;

                HttpContext.Current.Response.Cookies.Add(aCookie);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...