2010-01-13 10 views
6

Quindi non ho mai dovuto usare i cookie prima ma ora sto facendo un carrello della spesa che possono continuare a tornare e partire ma voglio che memorizzi cosa hanno aggiunto.Controllo/lettura/scrittura di cookie in. NET, per favore aiutami a capire

Quello che mi chiedo:

Come verificare se esiste un cookie e quindi creare o aggiornare, è che il modo migliore per pensare di utilizzare un cookie?

Come esattamente memorizzare i dati, in particolare voglio memorizzare un elenco di ID come "5,6,7,8", dovrei usare solo una stringa per questo o c'è un modo più veloce/migliore di leggere/analizzare/scrivere qualcosa del genere? Voglio dire, suppongo che continuerei ad aggiungere new_value + ',' alla fine, c'è un'app per le variabili dei cookie?

Il cookie ha un identificatore univoco che vorrei usare per essere sicuro di non scrivere duplicati o qualcosa del genere?

Nota: è facile cercare "COME" per vedere la sintassi, ma sto davvero cercando di cogliere il "BEST WAY" o il più ideale, come doveva essere usato, o come tutti i programmatori hanno trovato è il modo più fruttuoso di utilizzarli in questo tipo di scenario.

risposta

1

La risposta vincente allo this similar question suggerisce di memorizzare solo l'ID utente nel cookie. Il resto va nel database.

Se si possono prendere in considerazione altri approcci oltre ai cookie, molte persone preferiscono utilizzare la sessione utilizzando i cookie. Per prima cosa, non si ha sempre molto spazio in un cookie.

Memorizzare il carrello della spesa in un cookie significa che non si avrà alcuna registrazione di ciò che le persone stavano acquistando ma non hanno acquistato.

OTOH, l'utilizzo del cookie sta utilizzando lo spazio di archiviazione degli acquirenti e preserva il proprio. Questo potrebbe essere significativo nel tempo e un sacco di acquirenti.

+0

più eccellente, grazie – BigOmega

0

Ho risolto questo problema in passato creando una classe per gestire i cookie (ad esempio CookieManager) con metodi statici a cui ho passato un oggetto HttpRequest.

Stavo cercando di risolvere un problema molto simile, quindi ho creato un cookie Count e poi un cookie che memorizzava le informazioni che volevo salvare (nel tuo caso un numero ID). Volevo solo salvare gli ultimi 5 elementi visualizzati da un utente, quindi lo gestivo nella classe CookieManager, desacciando il cookie più vecchio e accodando l'ultimo. Il cookie Count teneva traccia di quanti cookie avevo. Ovviamente, questo non è molto tecnologico o sicuro, ma per questo progetto è stato completamente inutile. Tutto ciò che vuoi essere robusto dovrebbe essere salvato su un database o altrove sul lato server.

0

Voglio spiegare ulteriormente perché si memorizza solo un guid che esegue la mappatura a un ID utente in un cookie. Ci sono due ragioni principali:

  • Prestazioni. Per quanto possa sembrare lento estrarre dati da un database, è necessario ricordare che i dati dei cookie non sono gratuiti. Deve essere caricato dal browser dell'utente al server Web e anche le connessioni a banda larga ad alta velocità tendono ad avere velocità di upload molto più lente. Al contrario, il tuo database probabilmente ha un link gigabit (a volte anche più veloce) direttamente sul server web. Quindi quello che vuoi veramente nei tuoi cookie per ottenere le migliori prestazioni è un guid che mappa direttamente alla chiave primaria della tua tabella di database.
  • Sicurezza. I dati nei cookie sono memorizzati in un file di testo semplice sul computer dell'utente.Non sai mai da dove un utente accederà al tuo sito; potrebbe essere un luogo molto pubblico che non è appropriato per mantenere tali dati.

Quindi c'è qualche dati è possibile utilizzare i cookie direttamente? Come succede, c'è. I cookie hanno la proprietà di attaccarsi con una macchina e un browser specifici. In questi giorni molte persone accederanno al web da più di un posto. Forse un computer da lavoro, un computer di casa, uno smartphone, un netbook ... ognuno dei quali può avere schermi di dimensioni diverse e altre peculiarità. Quindi ciò che puoi fare con un cookie è l'informazione del negozio specifica per quella combinazione di utente + posizione.

Problemi correlati