Es besteht keine Notwendigkeit, diese Informationen in einem Cookie oder einer Sitzung zu speichern. Speichern Sie sie einfach in der Datenbank, wenn Sie sie behalten wollen, und bewahren Sie den Schlüssel in Sitzung/verstecktem Feld/Querystring auf (was wahrscheinlich nicht das Beste ist, da dies direkt in der Adressleiste sichtbar ist).
Cookies werden bei jeder Anfrage hin- und hergeschickt, also machen Sie entweder nicht zu viel Gebrauch von ihnen und speichern Sie auch nicht zu viele Informationen in ihnen. Vor allem, wenn sie sensible Daten enthalten, die abgefangen werden können.
Update nach dem ersten Kommentar: Wenn Sie die Daten nicht in der Datenbank behalten wollen, müssen Sie einen Auslöser oder einen Prozessablauf haben, der danach abläuft. In ASP.NET wird dies bei der Speicherung des Sitzungsstatus in SQL Server durch einen SQL-Agent-Job erledigt, der jede Minute läuft und verlassene Sitzungen entfernt. Sie haben nicht angegeben, welche Datenbank-Engine Sie verwenden, aber es gibt sicher etwas Ähnliches. Wenn nicht, können Sie einen Taskplaner oder Cron-Job verwenden, um in regelmäßigen Abständen eine Seite aufzurufen, die einen Aufräumcode ausführt.