Domanda

Ho creato un HttpCookie per condividere dati attraverso un sottodominio:

HttpCookie cookie = new HttpCookie("sessionGUID");
cookie.Value = value;
cookie.Domain = ".example.com";

Response.Cookies.Set(cookie);

Ho assunto con noncuranza poiché è un cookie di "sessione" (non scade) che scadrà insieme alla mia sessione ASP.NET. Naturalmente per il browser si tratta di un cookie di "sessione del browser" e non collegato alla sessione ASP.NET.

Quello che voglio fare è far scadere questi cookie di "sessione del browser" insieme alla sessione ASP.NET.

Penso di dover solo impostare Scadenza sullo stesso valore della sessione ASP.NET. Come lo determinerei programmaticamente?

È stato utile?

Soluzione

Se devono solo essere vicini, allora qualcosa del genere:

int expirationMinutes = Session.Timeout;
if (System.Web.HttpContext.Current.Response.Cookies["monster"]!=null)
{
    System.Web.HttpContext.Current.Response.Cookies["monster"].Expires =
                                 DateTime.Now.AddMinutes(expirationMinutes);
}

Il timer di sessione reimposta tutto ciò che l'utente pubblica o riceve, quindi poiché il codice è in esecuzione sul server in questo momento, il tempo rimanente sulla sessione corrente è Sessione. Timeout, diciamo 20 minuti.

Tra 20 minuti, il cookie non verrà accettato e dovrai emetterne uno nuovo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top