Passare dati dopo il Loginin aspx

martedì 03 novembre 2009 - 12.41

wiicapri Profilo | Newbie

Buongiorno a tutti !

Ho costruito alcune pagine aspx dentro una cartella "privata"

nel web config l'accesso ad ognuna di queste pagine avviene attraverso un pagina di login.aspx

Dopo aver validato l'utente ho scritto quanto segue:

FormsAuthentication.RedirectFromLoginPage(Login, True)
Response.Redirect("~/Private/MenuAdministrator.aspx")

Vorrei però passare le info di chi si è logato

Come posso fare ?

Grazie a tutti per l'aiuto e scusatemi per la mia ignoranza !

Ciao

Walter

paoval72 Profilo | Senior Member

Ciao.
Dopo la dichiarazione della pagina metti un punto interrogativo e accodi i tuoi parametri con i valori che ti servono. Se i parametri sono più di uno,il separatore è l'e commerciale (&). Qualcosa del tipo:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Poi nella pagina a cui punti, recuperi i valori:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Spero che sia questa la soluzione che cerchi.

PV

wiicapri Profilo | Newbie

Grazie 1.000 per avermi risposto !

In effettia è una soluzione che avevo preso in considerazione ma in questo modo i dati che si passono sono in "chiaro"

Non esiste un modo per passarli senza che siano visibili nell' URL ?

anche uilizzando un altro metodo compatibile con la validazione delle pagine nella cartella "Private" ?

Grazie ancora per la tua attenzione !

Ciao

Walter

Pinky Profilo | Junior Member

Dipende da dove/come vuoi tenere "le info".
(In ordine di preferenza)

1) Su database.
L'unica informazione che ti serve per recuperare l'utente dopo la sua autenticazione è l'username.
string username = Page.User.Identity.Name; // valorizzato dopo autenticazione e verificato tramite Page.User.Identity.IsAuthenticated
ed utilizzandolo per effettuare una query su una tabella creata apposta. E' il modo più sicuro e personalizzabile. NON scade (*).

2) Usando il Session.
Il metodo più semplice e buono per tutte le stagioni. E' il motore di ASP.NET che si preoccupa (dopo autenticazione) di darti la sessione univoca dell'utente.
Ti menziono solo due possibili inconvenienti/limitazioni (scadenza "di default" di 20 minuti (*), ma NON è garantita, può contenere solo oggetti serializzabili) che comunque non credo possano crearti problemi.

3) Usando gli oggetti preconfezionati di ASP.NET (Membership/Roles/Profile).
Li menziono solo per dovere, altamente sconsigliato anche se sei alle prime armi.

Con i suddetti sistemi il token di riconoscimento è già protetto, diversamente no.
Ad esempio se usi il querystring per inserire miaPagina.aspx?userId=125.
Certamente QUALCUNO proverà a scrivere userId=124, percui devi inventarti un qualche modo per proteggerti.

Il succo è che sul querystring non devi passare dati sensibili o che siano fonte di possibile raggiro delle protezioni.


(*) = con alcune impostazioni questo non è vero, prendilo per buono con il web.config di default.

Ciao
Alessandro

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5