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);
}
}
リダイレクトする方法は?
あなたはとても親しかった。これらのメソッドはIActionResult
(または非同期メソッドの場合はTask<IActionResult>
)を返す必要があり、リダイレクトを返す必要があります。
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
ただし、redirect_url
変数を検証していないため、巨大な Open Redirect Attack があります。 このコードを本番環境で使用しないでください。
IActionResultを使用して、リダイレクトまたはかみそりのページを返すことができます。
public IActionResult OnGet()
{
if (!Auth())
{
return new RedirectToPageResult("/Portal/Login");
}
return Page();
}
Csのないページでも同じです:
@page
@functions
{
public IActionResult OnGet()
{
string url = "/.auth/login/aad?post_login_redirect_url="
+ Request.Query["redirect_url"];
return Redirect(url);
}
}