salve
sto realizzando un applicazione web in cui vengono recuperati dei dati in base al nome utente che viene memorizzato in una variabile.
Vorrei riutilizzare il contenuto di questa variabile in altri web form, come posso fare?
ciao
salve
sto realizzando un applicazione web in cui vengono recuperati dei dati in base al nome utente che viene memorizzato in una variabile.
Vorrei riutilizzare il contenuto di questa variabile in altri web form, come posso fare?
ciao
usa la sessione, è il modo piu' semplice.
Session.Add("NomeVarSessione", valore);
lo recuperi con:
Session["NomeVarSessione"];
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
(ci sono altri modi, comunque. Il database, i cookies -per piccole quantità di dati-, i files di testo/xml)
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
questo in generale.
inoltre se usi (come dovresti fare) un autenticazione basata su membership provider o derivata la classe Page espone l'oggetto User il quale ti dice se la richiesta corrente arriva da un utente anonimo o registrato, che tipo di autenticazione e soprattutto il nomeutente.
Internamente i dati vengono pescati dal cookie di autenticazione cosa che ti evita di memorizzare A MANO il nome utente anche in session (la cui corretta gestione non ti è assicurata da NIENTE). Questo è importante perche non facendo cosi incorrerai SICURAMENTE in problemi di sicurezza.
@gdota, come ti è stato detto qui sopra, molto probabilmente stai facendo le cose "a mano", in stile ASP 3.0.
In Asp.Net le cose sono state se si puo' dire, facilitate, per quanto riguarda l'autenticazione dell'utente. Ci sono delle classi apposite, ma l'argomento è molto vasto.
Qui è spiegato in modo esaustivo l'argomento per quanto riguarda l'autenticazione con una form:
http://msdn.microsoft.com/it-it/libr...=vs.80%29.aspx
Qui con l'aiuto del sistema operativo (autenticazione windows):
http://msdn.microsoft.com/en-us/library/ff647405.aspx
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
ciao,
aggiungo, per tornare al discorso, che utilizzando le membership messe a disposizione di ASP.NET (come ti hanno giustamente suggerito djciko e rsdpzed), allora puoi utilizzare il "Profile", ovvero un meccanismo bello che pronto per fare appunto quello che chiedevi tu.
http://msdn.microsoft.com/it-it/library/cc185028.aspx
http://www.dotnethell.it/articles/ASP.NET2-Profile.aspx
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
e direi che da una richiesta cosi' semplice, abbiamo sviscerato l'argomento![]()
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
Quello che mi ha spinto a replicare è stata questa parte
In questo scenario penso che Session non sia da prendere in considerazione perche per prima cosa potrebbe essere wippato dal server in qualsiasi momento creando appunto situazioni di inconsistenza. Ma la cosa piu importante è che la session potrebbe perdurare tra diversi login creando problemi di sicurezza molto gravi: un utente potrebbe accedere ad informazioni riservate di un altro utente (quello loggato precedentemente). Questo perche il cookie di sessione e quello di autenticazione sono due cose diverse. Anche se asp.net mi promettesse di wippare il cookie di sessione ad ogni login/logout (cosa che non ho letto da nessuna parte) o se dovessi farlo io a mano, non mi fiderei comunque. Questo è un problema ricunducibile alla ridondanza delle informazioni: potrebbe succedere una qualsiasi cosa che faccia perdere la sincronizzazione e la sicurezza verrebbe compromessa....vengono recuperati dei dati in base al nome utente che viene memorizzato in una variabile.
In questo caso la cosa migliore è usare User.Identity.Username per prelevare il nome utente della richiesta http corrente mentre per prelevare/memorizzare informazioni che vanno memorizzate in db e sono legate all'utente si potrebbe usare il Profile oppure query al proprio database su tabelle in cui l'username è la chiave esterna, l'importante è che da aspnet, quando si deve passare questa chiave esterna ai metodi di business, si usi sempre User.Identity.Username che da la certezza sull'identità di chi ha effettuato la richiesta su cui si sta operando.
ora vado a lavarmi le mani sporche di viscere![]()
Se si decidesse a replicare ed a dirci lo scenario, magari la smetteremmo di spargere viscere in giro per il forum![]()
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
lo "svisceramento" è sempre cosa buona; sia per chi legge per la prima volta e scopre come funzionano a fondo i meccanismi, sia per chi li conosce già e se li ripassa ancora una volta (un kata non fa mai male neanche alle cinture nere...)
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/