다음을 통해 공유


ASP.NET 사이트 맵

업데이트: 2007년 11월

ASP.NET 사이트 탐색을 사용하려면 사이트 탐색 API와 사이트 탐색 컨트롤에서 사이트 구조를 올바르게 표시할 수 있도록 사이트의 구조를 설명해야 합니다. 기본적으로 사이트 탐색 시스템에서는 사이트 계층 구조가 포함된 XML 파일을 사용합니다. 그러나 대체 데이터 소스를 사용하도록 사이트 탐색 시스템을 구성할 수도 있습니다. 자세한 내용은 ASP.NET 사이트 탐색 공급자를 참조하십시오.

Web.sitemap 파일

사이트 맵을 만드는 가장 간단한 방법은 사이트의 페이지를 계층적으로 구성하는 Web.sitemap이라는 XML 파일을 만드는 것입니다. ASP.NET의 기본 사이트 맵 공급자는 자동으로 이 사이트 맵을 선택합니다.

Web.sitemap 파일은 응용 프로그램의 루트 디렉터리에 있어야 합니다. 이는 Web.sitemap 파일이 다른 디렉터리에 있는 다른 사이트 맵 파일이나 다른 사이트 맵 공급자를 참조하더라도 해당 파일이 동일한 응용 프로그램에 있는 한 마찬가지로 적용됩니다. 자세한 내용은 방법: 여러 사이트 맵 및 사이트 맵 공급자 구성을 참조하십시오.

보안 정보:

사이트 맵 데이터를 확장명이 .sitemap이 아닌 파일에 저장하는 사용자 지정 사이트 맵 공급자를 구현하면 보안상 위험할 수 있습니다. 기본적으로 ASP.NET은 .sitemap 같이 알려진 확장명의 파일을 클라이언트가 다운로드하지 못하도록 구성되어 있습니다. 데이터를 보호하려면 확장명이 .sitemap이 아닌 사용자 지정 사이트 맵 데이터 파일은 App_Data 폴더에 저장하십시오. 자세한 내용은 ASP.NET 사이트 탐색 보안을 참조하십시오.

다음 코드 예제에서는 세 개의 수준으로 구성된 간단한 사이트의 사이트 맵을 보여 줍니다. url 특성은 응용 프로그램 루트를 나타내는 "~/" 바로 가기로 시작할 수 있습니다. 자세한 내용은 ASP.NET 웹 사이트 경로를 참조하십시오.

<siteMap>
  <siteMapNode title="Home" description="Home" url="~/default.aspx">
    <siteMapNode title="Products" description="Our products"
      url="~/Products.aspx">
      <siteMapNode title="Hardware" description="Hardware choices"
        url="~/Hardware.aspx" />
      <siteMapNode title="Software" description="Software choices"
        url="~/Software.aspx" />
    </siteMapNode>
    <siteMapNode title="Services" description="Services we offer"
        url="~/Services.aspx">
        <siteMapNode title="Training" description="Training classes"
          url="~/Training.aspx" />
        <siteMapNode title="Consulting" description="Consulting services" 
          url="~/Consulting.aspx" />
        <siteMapNode title="Support" description="Supports plans" 
          url="~/Support.aspx" />
    </siteMapNode>
  </siteMapNode>
</siteMap>

Web.sitemap 파일에서 웹 사이트의 각 페이지에 대한 siteMapNode 요소를 추가합니다. 그런 다음 siteMapNode 요소를 중첩시켜 계층 구조를 만들 수 있습니다. 앞의 예제에서 Hardware 및 Software 페이지는 Products siteMapNode 요소의 자식 요소입니다. title 특성은 일반적으로 링크 텍스트로 사용되는 텍스트를 정의하며 description 특성은 SiteMapPath 컨트롤에서 설명 또는 도구 설명의 역할을 합니다.

참고:

사이트 맵에서 웹 응용 프로그램 외부의 URL을 참조할 수 있습니다. 응용 프로그램 외부의 URL에 대한 액세스는 ASP.NET에서 테스트할 수 없습니다. 따라서 보안 트리밍을 사용하는 경우 역할 특성을 "*"로 설정해야 사이트 맵 노드가 표시됩니다. 이렇게 하면 모든 클라이언트가 URL에 대한 액세스를 먼저 테스트하지 않고도 사이트 맵 노드를 볼 수 있습니다. 자세한 내용은 ASP.NET 사이트 맵 보안 트리밍을 참조하십시오.

유효한 사이트 맵

유효한 사이트 맵 파일에는 siteMap 요소 바로 아래의 siteMapNode 요소가 하나만 포함되어 있습니다. 그러나 첫 번째 수준의 siteMapNode 요소에는 자식 siteMapNode 요소가 여러 개 포함될 수 있습니다. 또한 유효한 사이트 맵 파일에서 url 특성을 비워 둘 수는 있지만 URL이 중복되면 안 됩니다. ASP.NET의 기본 사이트 맵 공급자가 아닌 공급자에는 이 제한 사항이 적용되지 않을 수 있습니다.

여러 사이트 맵 구성

전체 웹 사이트의 탐색 구조를 설명하기 위해 사이트 맵 파일이나 공급자를 둘 이상 사용할 수 있습니다. 예를 들어, 루트 Web.sitemap 파일에서 다음 코드로 siteMapNode 요소의 자식 사이트 맵 파일을 참조하여 해당 자식 사이트 맵 파일에 연결할 수 있습니다.

<siteMapNode siteMapFile="MySiteMap.sitemap"/>

자세한 내용은 방법: 여러 사이트 맵 및 사이트 맵 공급자 구성을 참조하십시오.

사이트 맵 지역화

사이트 맵의 다음 속성을 지역화할 수 있습니다.

Url 속성을 지역화하거나 사용자 로캘에 따라 달라지는 탐색 구조를 정의하려면 각 로캘에 대해 서로 다른 사이트 맵 파일을 정의하고 런타임에 프로그래밍 방식으로 적절한 Provider로 전환해야 합니다. 자세한 내용은 방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정을 참조하십시오. 사이트 맵의 지역화에 대한 자세한 내용은 방법: 사이트 맵 데이터 지역화를 참조하십시오.

참고 항목

작업

방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정

방법: 여러 사이트 맵 및 사이트 맵 공급자 구성

방법: 사이트 맵 데이터 지역화

개념

ASP.NET 사이트 탐색 개요

ASP.NET 사이트 탐색 공급자

ASP.NET 사이트 탐색 보안

데이터 액세스 보안

기타 리소스

호스팅된 환경에서의 ASP.NET 응용 프로그램 보안