Domanda

Ho una pagina in cui voglio mantenere il valore dell'oggetto tra i postback. Sto pensando a due modi per mantenere il valore degli oggetti

  
      
  1. Memorizza il valore in Visualizza stato
  2.   
  3. Memorizza il valore in un campo nascosto
  4.   

che è l'opzione migliore da usare in base al rendimento

È stato utile?

Soluzione

Viewstate se don't devi fare riferimento a esso nello script lato client. Un campo nascosto se lo fai.

Considera anche che se i dati sono sensibili, Viewstate è crittografato per impostazione predefinita, mentre il campo nascosto, per impostazione predefinita, lo memorizza come testo normale visibile a chiunque sappia come visualizzare l'origine.

Modifica

Per la nota di @Andrew Hare sulla sua risposta, sto modificando questo. È una distinzione abbastanza importante da notare. Non vorrei che qualcuno pensasse che fossero "sicuri". utilizzando Viewstate in base alla mia supervisione.

Viewstate NON è crittografato per impostazione predefinita, è memorizzato come codifica Base-64. Può essere decodificato abbastanza facilmente, quindi l'utilizzo di Viewstate perché crittografato per impostazione predefinita non è valido. È meglio del semplice testo, ma non per chiunque abbia la capacità di google "decrittografare Viewstate" o " decodifica Viewstate " ;.

Quindi non fare affidamento su Viewstate per proteggere le informazioni nascoste nel codice lato client.

Un articolo qui spiega come crittografarlo propriamente. (ma avverte anche di problemi di prestazioni).

Altri suggerimenti

Non importa davvero poiché ViewState è esso stesso archiviato in un input nascosto. Usa quello che è più facile per te. Se dipendesse da me, sceglierei ViewState poiché il runtime ASP.NET gestirà la serializzazione e la deserializzazione dei tuoi oggetti per te.

Mi piace ViewState - è molto più difficile hackerare - una persona cattiva potrebbe facilmente inviarti la tua pagina con dati errati nei tuoi campi nascosti

Si desidera memorizzarlo nello stato di visualizzazione. I campi nascosti possono essere aggiornati sul browser, poiché sono pensati per memorizzare informazioni che possono essere manipolate sul lato client. Lo stato di visualizzazione verrà convalidato da asp.net contro la manomissione, dove dovrai farlo da solo con il campo nascosto.

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