Nella mia applicazione ASP.NET ci sono alcuni dati che non cambiano spesso e quindi non c'è motivo di interrogare il database per ricontrollarlo ogni volta.
Nella mia situazione attuale sto controllando le credenziali dell'utente su ogni richiesta per vedere se hanno accesso per ciò che stanno tentando di fare (ad esempio, visualizzare una pagina particolare).
Le informazioni sulla sicurezza sono memorizzate nel database e sto notando un impatto sulle prestazioni su ogni caricamento della pagina. Il tempo di caricamento passa da 20 ms a 200 ms a causa delle query del database.
Mi sembra che dovrei memorizzare nella cache le informazioni relative alla sicurezza in modo che le pagine vengano renderizzate più velocemente (i dati possono essere aggiornati al riavvio dell'applicazione), ma non so come fare. Ho cercato i metodi di memorizzazione nella cache, ma nessuna soluzione che ho visto riguarda ciò che sto cercando di fare.
Un modo è quello di memorizzare le informazioni sulla sicurezza come di sola lettura in una classe statica o repository permanente che viene creata e caricata all'avvio dell'applicazione.
Un altro modo è utilizzare Wrapper di provider di tracciamento e memorizzazione nella cache per Entity Framework , ma secondo una risposta su StackOVerflow chiamata Come rendere la cache di Entity Framework alcuni oggetti che l'utente Alex James dice
sometimes this approach is overkill
C'è qualche svantaggio nella memorizzazione dei dati in alcune variabili di sola lettura (problemi di memoria?) e qualsiasi chiaro vantaggio nell'utilizzo del provider di memorizzazione nella cache?