web-dev-qa-db-fra.com

Comment rediriger sur ASP.Net Core Razor Pages

J'utilise les nouvelles pages Razor dans ASP.Net Core 2
Maintenant je dois rediriger

J'ai essayé ceci, mais la page ne redirige pas:

public class IndexModel : PageModel
{
    public void OnGet()
    {
        string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"];

        Redirect(url);
    }
}

Comment rediriger?

4
Tony

Tu étais très proche. Ces méthodes doivent renvoyer une IActionResult (ou Task<IActionResult> pour les méthodes async), puis vous devez renvoyer la redirection.

public IActionResult OnGet()
{
    string url = "/.auth/login/aad?post_login_redirect_url=" 
      + Request.Query["redirect_url"];

    return Redirect(url);
}

Documentation sur les pages de rasoir

Cependant, vous avez un énorme Open Redirect Attack parce que vous ne validez pas la variable redirect_url. N'utilisez pas ce code en production.

8
Erik Philips

Même chose pour les pages sans cs:

@page

@functions
{
    public IActionResult OnGet()
    {
        string url = "/.auth/login/aad?post_login_redirect_url=" 
          + Request.Query["redirect_url"];

        return Redirect(url);
    }
}
0
A K