10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Salve, ho il seguente problema:
quando da una pagina accedo alla pagina di login, vorrei che dopo l'accesso mi riporti alla pagina in cui ero prima, ma mi riporta sempre alla home page, come posso fare?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

bookmake ha scritto:

vorrei che dopo l'accesso mi riporti alla pagina in cui ero prima

Questo comportamento lo hai già in automatico se per il login degli utenti usi la FormsAuthentication.
Funziona così: quando un utente anomimo cerca di accedere di una pagina protetta, Asp.net lo reindirizza alla pagina di login e, nel far questo, si premura di passare in querystring la chiave ReturnUrl, che contiene appunto il percorso della pagina a cui tornare.
Esempio:
http://www.sito.it/Login.aspx?ReturnUrl=/AreaProtetta/Default.aspx


Tuttavia, se hai posto la domanda, immagino che tu non stia usando la FormsAuthentication. Se per qualche motivo non volessi usarla, puoi comunque imitarne il comportamento.
Quando reindirizzi l'utente alla pagina di login, includi anche tu una chiave ReturnURL. Quando la pagina di login riceverà i dati dal form, autentica l'utente e poi reindirizzalo alla pagina indicata nella chiave ReturnURL.

ciao

Enjoy learning and just keep making
10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Hai colto a pieno il mio problema, ma è proprio quello che non riesco a fare, cioè includere in una querystring una chiave di ritorno, come si fa? grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
quando fai il Response.Redirect("~/login.aspx"), non menzionare solo il nome della pagina login.aspx ma aggiungigli anche un parametro in querystring, come in questo esempio:
//Qui mi creo una variabile in cui metto il percorso della pagina corrente.
//uso UrlEncode per rendere innocui i caratteri speciali
var returnUrl = Server.UrlEncode(Request.Url.PathAndQuery);

//Effettuo il redirect indicando il ReturnURL in querystring
Response.Redirect("~/login.aspx?ReturnURL=" + returnUrl);


Dopo che l'utente ha digitato il suo username e la password nella pagina di login, cliccherà un tasto "Accedi" che scatenerà un POST alla pagina di login stessa. In quel momento, dopo aver verificato che i dati di accesso sono corretti, andrai a leggere la chiave ReturnURL dalla querystring ed effettuerai un redirect verso quella pagina.

//Leggo il valore dalla querystring
var returnUrl = Request.QueryString["ReturnURL"];

//se per qualsiasi motivo la chiave returnUrl non dovesse esserci
//allora imposto il percorso dell'homepage come predefinito
if (string.IsNullOrEmpty(returnUrl)){
 returnUrl = "~/";
}

//effettuo la ridirezione
Response.Redirect(returnUrl);


ciao
Modificato da BrightSoul il 09 dicembre 2012 16.24 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.