Ton*_*ony 15 c# asp.net razor-pages
我在ASP.Net核心2中使用新的Razor页面
现在我需要重定向
我试过这个,但页面没有重定向:
public class IndexModel : PageModel
{
public void OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"];
Redirect(url);
}
}
Run Code Online (Sandbox Code Playgroud)
如何重定向?
Eri*_*ips 25
你非常接近.这些方法需要返回IActionResult(或Task<IActionResult>异步方法)然后需要返回重定向.
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
Run Code Online (Sandbox Code Playgroud)
但是,您有一个巨大的Open Redirect Attack,因为您没有验证redirect_url变量.不要在生产中使用该代码.
Luc*_*ler 18
您可以使用 IActionResult 返回重定向或您的剃刀页面。
public IActionResult OnGet()
{
if (!Auth())
{
return new RedirectToPageResult("/Portal/Login");
}
return Page();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码来做到这一点:
public async Task OnGetAsync()
{
Response.Redirect("/Panel");
}
Run Code Online (Sandbox Code Playgroud)
对于没有 cs 的页面也是如此:
@page
@functions
{
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
}
Run Code Online (Sandbox Code Playgroud)