2014-09-05 4 views
3

Я видел примеры постоянных куков в ASP.NET MVC C# здесь, в stackoverflow. Но я не могу понять, почему приведенный ниже код не работает.C# persistent cookie

Сначала я пишу печенье:

HttpCookie cookie = new HttpCookie("AdminPrintModule"); 
cookie.Expires = DateTime.Now.AddMonths(36); 

cookie.Values.Add("PrinterSetting1", Request.QueryString["Printer1"]); 
cookie.Values.Add("PrinterSetting2", Request.QueryString["Printer2"]); 
cookie.Values.Add("PrinterSetting3", Request.QueryString["Printer3"]); 

Response.Cookies.Add(cookie); 

Я вижу куки хранятся в Internet Explorer. Содержимое выглядит нормально.

Затем код чтения:

HttpCookie cookie = Request.Cookies["AdminPrintModule"]; 
test = cookie.Values["PrinterSetting2"].ToString(); 

Переменная печенье сохраняет нуль. Не удалось сохранить значение PrinterSetting2 в тестовой переменной.

Я не знаю, что я делаю неправильно, потому что это более или менее копия-вставка из примеров здесь, в stackoverflow. Почему я не могу прочитать значение PrinterSetting2 из файла cookie?

ответ

1

попробуйте ниже код: -

if (Request.Cookies["AdminPrintModule"] != null) 
{ 
    HttpCookie cookie = Request.Cookies["AdminPrintModule"]; 
    test = cookie["PrinterSetting2"].ToString(); 
} 

Посмотрите на этот документ http://www.c-sharpcorner.com/uploadfile/annathurai/cookies-in-Asp-Net/: -

Ниже приведены несколько типов, чтобы писать и читать печенье: -

Non-Persist Печенье - у печенья истекло время, которое называется Неперстанное печенье

Как создать cookie? Его очень легко создать печенье в Asp.Net с помощью объекта Response или HttpCookie

Пример 1:

HttpCookie userInfo = new HttpCookie("userInfo"); 
    userInfo["UserName"] = "Annathurai"; 
    userInfo["UserColor"] = "Black"; 
    userInfo.Expires.Add(new TimeSpan(0, 1, 0)); 
    Response.Cookies.Add(userInfo); 

Пример 2:

Response.Cookies["userName"].Value = "Annathurai"; 
    Response.Cookies["userColor"].Value = "Black"; 

Как получить от печенья?

Его простой способ получить cookie формы формы формы с помощью запроса объект. Пример 1:

string User_Name = string.Empty; 
    string User_Color = string.Empty; 
    User_Name = Request.Cookies["userName"].Value; 
    User_Color = Request.Cookies["userColor"].Value; 

Пример 2:

string User_name = string.Empty; 
    string User_color = string.Empty; 
    HttpCookie reqCookies = Request.Cookies["userInfo"]; 
    if (reqCookies != null) 
    { 
     User_name = reqCookies["UserName"].ToString(); 
     User_color = reqCookies["UserColor"].ToString(); 
    } 
+0

Я понимаю, что это предотвращает провал, но это не решает мою проблему с чтением значения PrinterSetting2 из файла cookie. Почему я не могу прочитать это значение? – Walt501

+0

Я обновил свои ans, посмотрю @ Walt501 – Neel

+0

вместо того, чтобы поместить значение [""] попробуйте, как я это сделал в моем примере @ Walt501 – Neel

0

Вы должны убедиться, что у вас есть значения в Request.QueryString.Just, чтобы проверить, если ваш код работает жесткие значения кода печенья, а затем читать из файла cookie.

+0

Я могу проверить содержимое файла cookie с помощью блокнота. Значения сохраняются как ожидалось. Но я не могу их прочитать. – Walt501

+0

Я скопировал ваш код, и он отлично работает, я могу читать значение из файла cookie. – Mairaj