ASP.NET Core의 전체 공개 URL을 얻는 방법

3504 단어 dotnetaspnetcsharp
URL은 웹을 웹으로 만드는 것입니다. ASP.NET Core 컨트롤러, Razor 페이지 및 Razor 보기에는 Request 인스턴스에 대한 액세스를 제공하는 HttpRequest 속성이 있습니다. HttpRequest 개체는 들어오는 HTTP 요청의 구성표, 호스트(도메인 및 포트), 경로, 쿼리 문자열, 본문 콘텐츠 및 헤더에 대한 액세스를 제공합니다.

웹 애플리케이션의 전체 URL이 무엇인지 알아야 하는 경우 Scheme , Host , PathBase , PathQueryString 를 가져와서 다음과 같이 결합하여 URL을 함께 입력할 수 있습니다.

$"{Request.Scheme}://{Request.Host}{Request.PathBase}{Request.Path}{Request.QueryString}"


경로와 쿼리 문자열이 없는 URL에만 관심이 있을 수 있습니다. 이 경우 문자열 보간에서 PathBase , PathQueryString 매개 변수를 생략할 수 있습니다.

$"{Request.Scheme}://{Request.Host}"


애플리케이션에 대한 URL을 생성하려면 절대 URL 생성에 대한 이 블로그 게시물에 설명된 대로 UrlHelper를 사용하는 것이 좋습니다.

Minimal API를 사용하는 경우 액세스할 수 있는 Request 속성이 없지만 다음과 같이 끝점 콜백에 대한 매개 변수로 HttpRequest의 인스턴스를 수락할 수 있습니다.

app.MapGet("/hello-world", (HttpRequest request) =>
    {
        return $"{request.Scheme}://{request.Host}{request.PathBase}{request.Path}{request.QueryString}";
    }
);


HTTP 요청이 없으면 어떻게 됩니까?
BackgroundWorker 를 사용하여 일부 백그라운드 처리를 수행하는 경우와 같이 코드에서 처리하는 HTTP 요청이 없는 경우 체계를 가져와 다른 방식으로 호스팅해야 합니다. 원하는 체계와 호스트를 구성에 저장하거나 단일 속성에 결합하여 구성에 저장할 수 있습니다. 일단 구성되면 구성에서 추출하여 절대 URL을 구축하는 데 사용하십시오.

네트워크 및 인프라 구성에 따라 여러 URL에서 웹 애플리케이션을 요청할 수 있다는 사실에 유의하십시오. 따라서 전체 공개 URL을 구성에 간단히 저장할 수 있지만 사용자가 사용하는 유일한 URL은 아닐 수 있습니다.

좋은 웹페이지 즐겨찾기