Frage

Ich habe ein Http zu teilen, um Daten über eine Sub-Domain erstellt:

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

Response.Cookies.Set(cookie);

Ich nahm nachlässig, da es sich um eine ‚Sitzung‘ Cookie ist (kein abgelaufen ist), dass es mit meiner ASP.NET-Sitzung abläuft entlang würde. Natürlich an den Browser ist dies ein ‚Browser-Session‘ Cookie und nicht auf die ASP.NET-Sitzung verknüpft.

Was ich tun möchte, ist diese 'Browser-Session' Cookies laufen zusammen mit der ASP.NET-Sitzung.

Ich glaube, ich muss nur Gültig bis auf den gleichen Wert wie die ASP.NET-Sitzung festgelegt. Wie würde ich dies programmatisch bestimmen?

War es hilfreich?

Lösung

Wenn sie nur dicht sein müssen, dann so etwas wie folgt aus:

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);
}

Der Session-Timer setzt alles, um die Benutzer-Beiträge oder bekommt, so da Code wird jetzt auf dem Server ausgeführt wird, die verbleibende Zeit auf der aktuellen Sitzung ist Session.Timeout, sagen 20 Minuten.

In 20 Minuten wird das Cookie nicht akzeptiert werden, und Sie werden ein neues zu erteilen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top