Hier ist das Setup in Program.cs:
Code: Select all
// Cookies for session state
builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.Name = Constants.SessionCookieName;
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = false;
});
Wenn der Benutzer die Verwendung nicht notwendiger Cookies ablehnt, löscht der C#-Code den Sitzungsstatus und verwendet ihn nicht erneut. ABER der Keks ist immer noch da. Der Benutzer kann zur Cookie-Liste seines Browsers gehen und diese einsehen. Und weil es verschlüsselt ist, sieht der Benutzer nur verschlüsselten Text und er muss sich einfach darauf verlassen, dass ich dort nichts Unwesentliches speichere.
Der Screenshot unten ist von Edge:

Es wäre für die Benutzer klarer, ob, wann Sie lehnten die Verwendung nicht notwendiger Cookies ab. Dieses Sitzungsstatus-Cookie wurde gelöscht.
Ich habe zahlreiche Möglichkeiten ausprobiert, dieses Sitzungsstatus-Cookie zu löschen. Erstellen Sie ein weiteres Cookie mit demselben Namen in den Controllern OnActionExecuting und OnActionExecuted, löschen Sie den Sitzungsstatus und rufen Sie Response.Cookies.Delete auf, aber es verschwindet einfach nicht.
Außerdem wird das Sitzungsstatus-Cookie nicht neu erstellt, wenn ich das Sitzungsstatus-Cookie manuell lösche und nichts im Sitzungsstatus speichere. Es wird nur erstellt, wenn ich etwas im Sitzungsstatus speichere. Leider wird es nicht gelöscht, wenn ich den Sitzungsstatus lösche.
Wie lösche ich das Sitzungsstatus-Cookie?