如何在 ASP.Net Core Razor 页面上重定向
How to redirect on ASP.Net Core Razor Pages
我在 ASP.Net 核心 2
中使用新的 Razor Pages
现在我需要重定向
我试过了,但是页面没有重定向:
public class IndexModel : PageModel
{
public void OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"];
Redirect(url);
}
}
如何重定向?
你们非常亲密。这些方法需要 return 一个 IActionResult
(或 Task<IActionResult>
对于异步方法)然后你需要 return 重定向。
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
但是,您有一个巨大的 Open Redirect Attack,因为您没有验证 redirect_url
变量。 不要在生产中使用此代码。
没有 cs 的页面也是如此:
@page
@functions
{
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
}
您可以使用 IActionResult return 重定向或您的 razor 页面。
public IActionResult OnGet()
{
if (!Auth())
{
return new RedirectToPageResult("/Portal/Login");
}
return Page();
}
您可以使用以下代码完成:
public async Task OnGetAsync()
{
Response.Redirect("/Panel");
}
您可以直接在剃须刀视图中使用它。
@{
if (!Context.Request.Path.Value.Contains("Identity/Account/UserMustChangePassword"))
{
Context.Response.Redirect("Identity/Account/UserMustChangePassword");
}
}
我在 ASP.Net 核心 2
中使用新的 Razor Pages
现在我需要重定向
我试过了,但是页面没有重定向:
public class IndexModel : PageModel
{
public void OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url=" + Request.Query["redirect_url"];
Redirect(url);
}
}
如何重定向?
你们非常亲密。这些方法需要 return 一个 IActionResult
(或 Task<IActionResult>
对于异步方法)然后你需要 return 重定向。
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
但是,您有一个巨大的 Open Redirect Attack,因为您没有验证 redirect_url
变量。 不要在生产中使用此代码。
没有 cs 的页面也是如此:
@page
@functions
{
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
}
您可以使用 IActionResult return 重定向或您的 razor 页面。
public IActionResult OnGet()
{
if (!Auth())
{
return new RedirectToPageResult("/Portal/Login");
}
return Page();
}
您可以使用以下代码完成:
public async Task OnGetAsync()
{
Response.Redirect("/Panel");
}
您可以直接在剃须刀视图中使用它。
@{
if (!Context.Request.Path.Value.Contains("Identity/Account/UserMustChangePassword"))
{
Context.Response.Redirect("Identity/Account/UserMustChangePassword");
}
}