Domanda

Non vedo l'ora di un metodo per passare i dati da una pagina all'altra in modo sicuro ed evitare in quanto è possibile la manomissione.


  • Il modo migliore per risolverlo, è quello di salvare i dati sensibili sul db server.
  • o utilizzando sessione persistono sul db server.
  • O qualunque metodo che persiste dati sul db server.

Il fatto è che a causa di prestazioni non vorrei usare tali metodi.

Non so se ciò che segue è un modo sicuro, ma vorrei provarlo. (Ma non so se è possibile)

Vorrei salvare i dati sensibili in ViewState nella crittografia mode..for ex in tespage1.aspx e recuperare questo da testpage2.aspx.

Come posso fare questo, ed è sicuro?

Grazie in anticipo

È stato utile?

Soluzione

Creare una classe personalizzata per contenere i vostri dati sensibili.

class myCustomeClass
{
    int id;
    string name;
    currency amount;

    '... properties to access

    '... custom methods

    '... etc.
}

Se siete veramente paranoico comprendono metodi per la cifratura / decifratura ... Ora, impostare i campi e le proprietà per i dati. Avanti, cifrare (optional). Mettere la cosa nella cache ...

Cache.Insert("MySensitiveData", myCustomClass, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration);

reindirizzare alla tua altra pagina

Nel caso in Page Load

MyCustomClass oSensitiveData;

if (!IsPostBack)
{
    oSensitiveData = (myCustomeClass)Cache["MySensitiveData"];
}

Questo è tutto, avete i vostri dati, se crittografati che è ora necessario decifrarlo ...

Ci sono una moltitudine di modi per farlo, ma questo funziona per me con relativamente piccoli insiemi di dati. Se stai facendo grandi insiemi di dati, allora si potrebbe desiderare di esplorare utilizzando un database come SQL Sever, MySQL, ecc ... di agire come un 'cache' per i dati.

Altri suggerimenti

Il suo raccomandato sempre che i dati sensibili, dovrebbero essere nel server non con il cliente. Tutto ciò che si incorpora nella pagina è una passività. Dal momento che avete escluso tutte le opzioni lato server, ViewState dovrebbe essere la soluzione migliore credo che a causa della sua crittografia. Si potrebbe anche utilizzare la proprietà Page.enableviewstatemac di avere trasferimento ViewState anche sicuro.

Due problemi qui ... Uno, ViewState non è sicuro. Per default è solo una codifica BASE64 semplice. Salvare questi dati sul server, punto. Tutto il resto è in cerca di guai. Due, ViewState è perduto quando si va a una nuova pagina, per una buona ragione. Questo non è come passare i dati da una pagina aspx ad un altro.

Inoltre, la scelta di ViewState nel corso della sessione per motivi di prestazioni non ha senso nella maggior parte degli scenari. Utilizzando InProc Session o Cache sta per essere molto più efficiente di ViewState.

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