Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [ASP.NET MVC 3 C#]autenticazione personalizzata - togliere il parametro ReturnUrl

    Ciao a tutti,

    stavo implementando un sistema di login personalizzato per un'applicazione e mi chiedevo se fosse possibile togliere dall'url il parametro ReturnUrl.

    In pratica se provo ad accedere ad una pagina protetta mi rimanda a sito/Login?ReturnUrl=%2f io volevo semplicemente togliere quel ReturnUrl in quanto la pagina da visualizzare dopo il login sarà sempre il pannello di controllo.

    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    è intrinseco nel sistema di autenticazione di asp.net. hai diverse possibilità:

    1 - semplicemente non usare returnUrl. Effettua l'autenticazione con FormAuthentication e redireziona l'utente direttamente al pannello di controllo.

    2 - Se proprio ti da fastidio e vuoi che il sistema di autenticazione di asp.net non generi quel parametro in querystring evita di accedere alla pagina di login puntando su risorse protette! Se punti direttamente alla pagina di login non verrà creato il parametro returnUrl e a quel punto nel metodo POST effettui il redirect al pannello.

  3. #3
    Ciao rsdpzed, grazie della risposta!

    Quindi se invece di utilizzare [Authorize] sui controller e/o sui metodi che devono essere protetti usassi un controllo del tipo
    codice:
    if(!User.Identity.IsAuthenticated){ return Redirect("/Login"); }
    dovrebbe funzionare...è questo che intendevi nel punto 2?!

    Grazie mille ancora!

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    no no, authorized lo devi usare.

    semplicemente dalla pagina ad accesso libero (diciamo la home page) il link che porta al login non deve puntare al pannello il quale poi ti redireziona alla pagina di login ma direttamente al login.

    Se punti al pannello (decorato giustamente con authorized) e non sei collegato, il server ritorna un http403, a questo punto entra in gioco asp.net che intercetta il 403 ed invece di ritornarti un errore di non autorizzazione (la pagina forbidden non so se hai presente) ti redireziona verso la pagina di login inserendo il parametro returnurl. Perciò basta semplicemente evitare di accedere direttamente al pannello da scollegati ma puntando alla pagina di login. Sarà poi la pagina di login a gestire il redirect verso il pannello se l'autenticazione va a buon fine.

  5. #5
    Capito...il problema è che la home page pubblica non esiste perchè è un'applicazione interna all'azienda dove lavoro...e di conseguenza la home page è il pannello di controllo stesso...a questo punto potrei a pensarci impostare come controller di default quello che fa il login e dentro il metodo index fare un controllo se l'utente è autenticato rimando al pannello di controllo....oppure lasciare come è....grazie infinite!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.