18 messaggi dal 27 settembre 2011
Salve a tutti.

Sto sviluppando una pagina WEB ASP.NET C# dove in un cookie voglio conservare le impostazioni volute dall'utente.
Il problema è che al rientro nel browser (qualunque esso sia) il cookie non esiste più mentre come da codice dovrebbe essere "eterno" (senza scadenza), e le impostazioni dell'utente vengono così perdute.

Se utile, voglio precisare che la pagina è protetta SSL (sarà quello?).

Il codice è il seguente:

HtmlInputCheckBox chkdeviceControl = this.FindControl("check") as HtmlInputCheckBox;
bool liste = chkdeviceControl.Checked ? true : false;

if (liste == true)
{
Response.Cookies["mycookie"].Value = "set1";
}
else
{
Response.Cookies["mycookie"].Value = "set2";
}

Response.Cookies["mycookie"].Expires = DateTime.MaxValue;

Grazie a tutti!
Modificato da amolavita il 05 settembre 2018 11.31 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
può darsi che il valore di DateTime.MaxValue non sia gradito al browser. Per il momento, prova ad usare una data di 1 anno nel futuro.
Response.Cookies["mycookie"].Expires = DateTime.Now.AddYears(1);


Se funziona, aumenta il numero di anni.
ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 27 settembre 2011
Grazie BrightSoul! Ora proverò e ti dirò come è andata.
18 messaggi dal 27 settembre 2011
Caro BrightSoul, ho risolto così. Ma ti ringrazio lo stesso per il prezioso contributo.


HtmlInputCheckBox chkdeviceControl = this.FindControl("check") as HtmlInputCheckBox;
bool liste = chkdeviceControl.Checked ? true : false;

if (liste == true)
{
Response.Cookies["mycookie"].Value = "set1";
}
else
{
Response.Cookies["mycookie"].Value = "set2";
}

Response.Cookies["mycookie"].Secure = true; //.................. <<===== credo che questa si possa evitare
Response.Cookies["mycookie"].Path = Server.MapPath("/"); //.... <<===== questa mi ha risolto il problema

Response.Cookies["mycookie"].Expires = DateTime.MaxValue;
11.886 messaggi dal 09 febbraio 2002
Contributi
Ok, bene. Però attenzione, stai assegnando il percorso fisico alla proprietà Path (es. C:\inetpub\wwwroot). Fai semplicemente:
Response.Cookies["mycookie"].Path = "/";


ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 27 settembre 2011
Grazie Moreno, hai ragione! Che stupidata stavo facendo!!? Ora funziona davvero.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.