Как перенаправить на ASP.Net Core Razor Pages - PullRequest
0 голосов
/ 11 мая 2018

Я использую новые Razor Pages в ASP.Net core 2
Теперь мне нужно перенаправить

Я пробовал это, но страница не перенаправляет:

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

        Redirect(url);
    }
}

Как перенаправить?

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

То же самое для страниц без cs:

@page

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

        return Redirect(url);
    }
}
0 голосов
/ 24 июня 2019

Вы можете использовать IActionResult для возврата перенаправления или вашей бритвенной страницы.

public IActionResult OnGet()
{
     if (!Auth())
     {
         return new RedirectToPageResult("/Portal/Login");
     }
     return Page();
}
0 голосов
/ 11 мая 2018

Вы были очень близки. Эти методы должны возвращать IActionResult (или Task<IActionResult> для асинхронных методов), а затем вам нужно возвращать перенаправление.

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

    return Redirect(url);
}

Документация по бритвенным страницам

Однако у вас есть огромная атака открытого перенаправления , потому что вы не проверяете переменную redirect_url. Не используйте этот код в производстве .

...