2016-10-07 4 views
0

Я собираю данные и запрос использование POST для установки куки на сервер следующим способом:прочитанной печенья HTTPS

HttpCookie cookies = new HttpCookie(name) { 
    Value = value, 
    Expires = DateTime.MaxValue, 
    Secure = true }; 
HttpContext.Current.Response.Cookies.Remove(name); 
HttpContext.Current.Response.Cookies.Add(cookies); 

После запроса POST закончил я перезагрузить страницу с помощью JS. Я использую некоторые значения из файла cookie для этой страницы.

Я стараюсь, чтобы заставить их полюбить:

if (HttpContext.Current.Request.Cookies[NameCookieName] != null) 
{ 
    name = HttpContext.Current.Request.Cookies[NameCookieName].Value; 
} 
if (HttpContext.Current.Request.Cookies[RegionCookieName] != null) 
{ 
    region = HttpContext.Current.Request.Cookies[RegionCookieName].Value; 
} 

Если я использую HTTP он работает нормально.

Когда я использую cookie HTTPS, но когда я читаю их, значение coookie равно NULL.

Как установить/получить файл cookie с помощью HTTPS?

ответ

0

Я думаю, вы должны использовать безопасное свойство. В C# в классе HttpCookie есть свойство Secure, которое позволяет вам получать и устанавливать файлы cookie через HTTPS/SSL. Я считаю, что вам нужно настроить условия для установки и получения файлов cookie на этих HTTPS-страницах, а также на HTTP-тегах.

Cookies, установленные через HTTPS, должны работать только через HTTP, поэтому, возможно, просто создайте cookie с помощью Secure. Похоже, поскольку это не задано, cookie устанавливается только по страницам HTTP по умолчанию.

Вы можете обратиться ниже кода:

protected void Application_EndRequest(Object sender, EventArgs e) 
    { 
     string authCookie = FormsAuthentication.FormsCookieName; 

     foreach (string sCookie in Response.Cookies) 
     { 
      if (sCookie.Equals(authCookie)) 
      { 
       // Set the cookie to be secure. Browsers will send the cookie 
       // only to pages requested with https 
       var httpCookie = Response.Cookies[sCookie]; 
       if (httpCookie != null) httpCookie.Secure = true; 
      } 
     } 
    } 

Надеется, что это помогает.

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