Estoy usando las nuevas Razor Pages en ASP.Net core 2
Ahora necesito redirigir
Intenté esto, pero la página no redirige:
public class IndexModel : PageModel { public void OnGet() { string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"]; Redirect(url); } }¿Cómo redirigir?
Lo mismo para páginas sin cs:
@page @functions { public IActionResult OnGet() { string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"]; return Redirect(url); } }Estabas muy cerca. Estos métodos deben devolver un IActionResult (o Task<IActionResult> para métodos asincrónicos) y luego debe devolver la redirección.
public IActionResult OnGet() { string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"]; return Redirect(url); }Documentación de las páginas de Razor
Sin embargo, tiene un gran ataque de redirección abierta porque no está validando la variable redirect_url . No use este código en producción .
Puede usar IActionResult para devolver una redirección o su página de afeitar.
public IActionResult OnGet() { if (!Auth()) { return new RedirectToPageResult("/Portal/Login"); } return Page(); }Puedes hacerlo con este código:
public async Task OnGetAsync() { Response.Redirect("/Panel"); }