web-dev-qa-db-de.com

So leiten Sie ASP.Net Core Razor Pages um

Ich verwende die neuen Rasierer-Seiten in ASP.Net Core 2
Nun muss ich umleiten

Ich habe es versucht, aber die Seite leitet nicht weiter:

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

        Redirect(url);
    }
}

Wie umleiten?

4
Tony

Du warst sehr nahe. Diese Methoden müssen eine IActionResult (oder Task<IActionResult> für async-Methoden) zurückgeben, und dann müssen Sie die Weiterleitung zurückgeben.

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

    return Redirect(url);
}

Rasierseiten-Dokumentation

Sie haben jedoch einen großen Open-Redirect-Angriff , weil Sie die redirect_url-Variable nicht überprüfen. Verwenden Sie diesen Code nicht in der Produktion.

8
Erik Philips

Gleiches für Seiten ohne 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