Sto lavorando a un'applicazione mvc .net e sto utilizzando l'autenticazione dei moduli. Voglio reindirizzare l'utente alla pagina che ha richiesto dopo che è stato autenticato. Qualsiasi aiuto sarebbe apprezzato.Reindirizza alla pagina richiesta dopo l'autenticazione
risposta
Se si crea un progetto di applicazione Internet ASP.NET MVC 3 o 4, verrà fornito un esempio completo di come utilizzare l'URL di ritorno durante l'autenticazione.
Quando si aggiunge AuthorizeAttribute a un controller per forzare l'autenticazione, reindirizzerà l'utente al metodo di accesso e aggiungerà automaticamente il parametro returnUrl. Da lì, è necessario tenere traccia di come si mostra il tuo form di login:
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
e poi aggiungerlo alla collezione percorso del proprio form di login:
@*//ReSharper disable RedundantAnonymousTypePropertyName*@
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@*//ReSharper restore RedundantAnonymousTypePropertyName*@
}
Una volta che l'utente invia il login, assumendo si autenticano correttamente, ti basta reindirizzare a ReturnURL:
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
return RedirectToLocal(returnUrl);
}
la parte più difficile è tenere traccia del ReturnUrl attraverso la sequenza GET/POST.
Se si desidera vedere come funziona AuthorizeAttribute, il post this StackOverflow mostra l'impostazione returnUrl con la richiesta originale.
È inoltre necessario verificare che returnUrl sia realmente un URL locale o che si risulti vulnerabile agli attacchi di reindirizzamento aperti. RedirectToLocal() è un metodo di supporto dal modello di applicazione 4 Internet MVC che fa questo di convalida:
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
- 1. Rails reindirizza alla pagina precedente (indietro) dopo l'eliminazione
- 2. Come funziona Symfony2 reindirizzamento alla pagina richiesta dopo il login
- 3. Microsoft.Owin.Security.IAuthenticationManager non reindirizza alla pagina di login
- 4. Symfony security reindirizza alla pagina di login
- 5. HttpServletResponse.sendError() non reindirizza alla pagina di errore
- 6. Come reindirizzare alla stessa pagina dopo una richiesta POST
- 7. htaccess reindirizza tutte le pagine alla singola pagina
- 8. la sicurezza di primavera reindirizza all'ultima pagina richiesta dopo il timeout della sessione di login
- 9. Angolare2 Reindirizza dopo l'accesso
- 10. ruby rails - reindirizza all'url di richiesta originale
- 11. AngularJS - Reindirizza alla pagina di accesso e Persistenza dell'ID sessione
- 12. Grails Spring Security reindirizza alla pagina di accesso utilizzando https
- 13. Il controller Spring-MVC reindirizza alla pagina "precedente"?
- 14. Reindirizza dopo l'accesso con Devise
- 15. OpenId + JSF reindirizza l'utente alla pagina di accesso?
- 16. Come inviare dati variabili quando si reindirizza alla pagina precedente
- 17. Non reindirizza la pagina dopo UploadComplete in AsyncFileUpload C#
- 18. Reindirizza la pagina Web dopo aver inviato alcuni contenuti
- 19. href = "#" reindirizza alla pagina indice ma non alla parte superiore della pagina corrente
- 20. OrangeHRM: Google OAuth reindirizza alla pagina di login dopo l'autorizzazione di successo invece di Dashboard
- 21. Django - dopo il login, reindirizza l'utente alla sua pagina personalizzata -> mysite.com/username
- 22. Reindirizza richiesta all'interfaccia di amministrazione
- 23. Come ottenere il precedente URL della pagina da richiesta servlet dopo dispatcher.forward (richiesta, risposta)
- 24. Reindirizza alla pagina AccessDenied quando l'utente non è autorizzato
- 25. Reindirizza tomcat alla pagina di manutenzione quando inattivo
- 26. Reindirizza alla pagina di accesso se l'utente non è connesso
- 27. Ajax Reindirizza alla pagina invece di aggiornare il target
- 28. Reindirizza/torna alla stessa pagina (precedente) in Django?
- 29. Se nessuna route corrisponde, quindi reindirizza alla pagina radice
- 30. PHP Reindirizza a un'altra pagina dopo il modulo invia
ringrazio molto, è ora di lavoro :) –
@HediNaily: un punto per ricordare non è fidarsi ReturnURL ea controllalo prima di usarlo per reindirizzare l'utente –
@ mohsen.d. RedirectToLocal() è un helper MVC 4 incluso nel modello di applicazione Internet che convalida l'URL prima del reindirizzamento. Lo aggiungerò alla risposta per quelli senza il metodo di supporto. – mfanto