Richiesta di cookie ripetuta o memorizzazione in viewstate? Qual è la pratica migliore?

StackOverflow https://stackoverflow.com/questions/167873

  •  03-07-2019
  •  | 
  •  

Domanda

Ho un sito Web interno a cui gli utenti accedono. Questi dati vengono salvati come cookie. Da lì gli utenti vanno per la loro strada allegra. Ogni tanto le applicazioni interrogheranno il record di autenticazione per determinare quali autorizzazioni ha l'utente.

La mia domanda è questa: è più efficace interrogare il cookie per i dati dell'utente quando è necessario o salvare le informazioni dell'utente in viewstate?

[Modifica] Come menzionato di seguito, anche Sessione è un'opzione.

È stato utile?

Soluzione

Viewstate è specifico della pagina che stanno visualizzando, quindi è sparito una volta che percorrono la loro allegra strada. Non è un buon modo per conservare i dati.

La soluzione migliore è utilizzare l'autenticazione moduli, integrata in ASP.NET e puoi anche inserire qualsiasi informazione specifica dell'utente nel valore del ticket di autenticazione moduli. Puoi ottenere 4000 byte lì (dopo la crittografia) che dovrebbero contenere tutto ciò di cui hai bisogno. Si occuperà inoltre di consentire e negare agli utenti l'accesso alle pagine del sito e puoi impostarlo in modo che scada quando necessario.

L'archiviazione nella sessione è un no-no perché ridimensiona MOLTO male (consuma risorse sul server) e può essere fastidioso per gli utenti con più connessioni browser allo stesso server. A volte è inevitabile, ma dovresti fare molta fatica per evitarlo, se puoi.

Altri suggerimenti

Personalmente, preferisco usare una session per archiviare le cose, anche se gli altri sviluppatori qui sembrano pensare che sia un no-no.

C'è un avvertimento: potresti voler archiviare l'IP dell'utente nella sessione e confrontarlo con l'IP corrente dell'utente per evitare il dirottamento della sessione. Forse qualcun altro qui ha un'idea migliore su come prevenire il dirottamento della sessione.

Puoi utilizzare i dati della sessione, in questo modo sai che una volta memorizzati lì, gli utenti non possono scherzare cambiando la stringa di query.

Vorrei utilizzare il metodo dei cookie. La sessione va bene, ma viene disposta da asp.net al momento della ricompilazione e devi comunque utilizzare un cookie non di sessione se desideri persistere dopo la sessione. Anche se usi mai un server degli stati, essenzialmente fa la stessa cosa (memorizza la sessione nel db). La sessione è come una soluzione rapida e sporca, i veri uomini usano i cookie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top