반응형
ASP에서 리디렉션하는 방법.넷코어 레이저 페이지
저는 ASP의 새로운 레이저 페이지를 사용하고 있습니다.넷코어 2
이제 리디렉션해야 합니다.
시도했지만 페이지가 리디렉션되지 않습니다.
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
변수.프로덕션에서 이 코드를 사용하지 마십시오.
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);
}
}
다음 코드로 실행할 수 있습니다.
public async Task OnGetAsync()
{
Response.Redirect("/Panel");
}
당신은 이것을 면도기 뷰에서 직접 사용할 수 있습니다.
@{
if (!Context.Request.Path.Value.Contains("Identity/Account/UserMustChangePassword"))
{
Context.Response.Redirect("Identity/Account/UserMustChangePassword");
}
}
언급URL : https://stackoverflow.com/questions/50281937/how-to-redirect-on-asp-net-core-razor-pages
반응형
'programing' 카테고리의 다른 글
도커 컨테이너에서 PATH 환경 변수를 영구적으로 업데이트하는 중 (0) | 2023.09.05 |
---|---|
jQuery validator 플러그인 + ajax 제출이 작동하지 않음 (0) | 2023.09.05 |
.net의 메모리 데이터베이스에 있습니다. (0) | 2023.09.05 |
윈도우즈 7에서 명령줄별 SQL 파일 가져오기 (0) | 2023.09.05 |
Objective-C 클래스에서 Swift 함수 (0) | 2023.09.05 |