다음을 통해 공유


ASP.NET 사이트 탐색 개요

업데이트: 2007년 11월

ASP.NET 사이트 탐색 기능을 사용하면 사용자가 사이트를 일관된 방식으로 탐색할 수 있습니다. 사이트의 규모가 커지고 사이트에서 탐색할 페이지의 수가 늘어남에 따라 모든 링크를 관리하기가 힘들어질 수 있습니다. ASP.NET 사이트 탐색 기능을 사용하면 모든 페이지 링크를 중앙 위치에 저장하고 특정 웹 서버 컨트롤을 포함하여 각 페이지의 목록 또는 탐색 메뉴에 이러한 링크를 렌더링할 수 있습니다.

사이트를 위해 관리가 용이하고 일관된 탐색 솔루션을 만들려면 ASP.NET 사이트 탐색 기능을 사용할 수 있습니다. ASP.NET 사이트 탐색은 다음 기능을 제공합니다.

  • **사이트 맵   **사이트 맵을 사용하여 사이트의 논리적 구조를 나타낼 수 있습니다. 그러면 모든 웹 페이지의 하이퍼링크를 수정하는 대신 페이지를 추가 또는 제거할 때마다 사이트 맵을 수정하는 방식으로 페이지 탐색을 관리할 수 있습니다.

  • **ASP.NET 컨트롤   **ASP.NET 컨트롤을 사용하여 웹 페이지에 탐색 메뉴를 표시할 수 있습니다. 탐색 메뉴는 사이트 맵을 기반으로 합니다.

  • 프로그래밍 컨트롤 코드에서 ASP.NET 사이트 탐색을 사용하여 사용자 지정 탐색 컨트롤을 만들거나 탐색 메뉴에 표시되는 정보의 위치를 수정할 수 있습니다.

  • **액세스 규칙   **탐색 메뉴에 링크를 표시하거나 숨기도록 액세스 규칙을 구성할 수 있습니다.

  • 사용자 지정 사이트 맵 공급자 사용자 지정 사이트 맵 공급자를 만들어 자신의 사이트 맵 백 엔드(예: 링크 정보가 저장되는 데이터베이스) 작업을 수행하고 공급자를 ASP.NET 사이트 탐색 시스템에 연결할 수 있습니다.

사이트 탐색 작동 방식

ASP.NET 사이트 탐색에서는 사이트의 레이아웃을 계층 구조로 나타냅니다. 예를 들어 가상의 온라인 컴퓨터 저장소에 다음과 같은 방식으로 레이아웃된 8개의 페이지로 이루어진 사이트가 있을 수 있습니다.

Home
   Products
      Hardware
      Software
   Services
      Training
      Consulting
      Support

사이트 탐색을 사용하려면 사이트 맵 또는 사이트의 표현을 만드는 작업부터 시작합니다. 사이트의 계층 구조를 XML 파일에 기술할 수 있지만 다른 옵션도 사용할 수 있습니다. 자세한 내용과 예제는 ASP.NET 사이트 맵을 참조하십시오.

사이트 맵을 만든 후에는 사이트 탐색 컨트롤을 사용하여 ASP.NET 페이지에 탐색 구조를 표시할 수 있습니다. 이에 대한 예제를 보려면 방법: 간단한 사이트 탐색 추가를 참조하십시오.

사이트 맵 로드 프로세스

기본 ASP.NET 사이트 맵 공급자는 사이트 맵 데이터를 XML 문서로 로드하고 응용 프로그램을 시작할 때 이를 정적 데이터로 캐시합니다. 지나치게 큰 사이트 맵 파일을 로드할 때 메모리와 CPU 기능이 많이 소모될 수 있습니다. ASP.NET 사이트 탐색 기능은 파일 알림을 통해 탐색 데이터를 최신 상태로 유지합니다. 사이트 맵 파일이 변경되면 ASP.NET은 사이트 맵 데이터를 다시 로드합니다. 바이러스 검색 소프트웨어가 사이트 맵 파일을 수정하지 않도록 구성합니다. 자세한 내용은 ASP.NET 사이트 탐색 보안을 참조하십시오.

사이트 탐색 컨트롤

ASP.NET 사이트 탐색 시스템의 두 가지 작업 중 하나는 사이트의 구조를 나타내는 사이트 맵을 만드는 것이고 다른 한 작업은 사이트를 쉽게 둘러볼 수 있도록 탐색 구조를 ASP.NET 웹 페이지에 표시하는 것입니다. 다음 ASP.NET 사이트 탐색 컨트롤을 사용하면 페이지에 탐색 기능을 손쉽게 빌드할 수 있습니다.

  • SiteMapPath   이 컨트롤은 breadcrumb 또는 eyebrow라고도 하는 탐색 경로를 표시하여 사용자에게 현재 페이지 위치를 보여 주고 링크를 홈 페이지로 되돌아가는 경로로 표시합니다. 컨트롤은 링크의 모양을 사용자 지정하기 위한 다양한 옵션을 제공합니다.

  • TreeView   이 컨트롤은 사이트의 다른 페이지로 가기 위해 통과하는 트리 구조 또는 메뉴를 표시합니다. 자식 노드가 포함된 노드를 클릭하면 확장하거나 축소할 수 있습니다.

  • Menu   이 컨트롤은 사이트의 다른 페이지로 가기 위해 통과하는 확장 가능한 메뉴를 표시합니다. 커서를 메뉴 쪽으로 이동하면 자식 노드가 포함된 노드가 확장됩니다.

앞의 예제에서 온라인 컴퓨터 저장소의 Training 페이지에 SiteMapPath 컨트롤을 추가하면 SiteMapPath 컨트롤은 Home 및 Services가 하이퍼링크로 렌더링된 다음과 같은 모양으로 표시됩니다.

Home > Services > Training

SiteMapPath 컨트롤을 사용하여 코드 및 명시적 데이터 바인딩을 사용하지 않고도 사이트 탐색을 만들 수 있습니다. 컨트롤은 사이트 맵 정보를 자동으로 읽고 렌더링할 수 있습니다. 그러나 필요한 경우 코드를 사용해 SiteMapPath 컨트롤을 사용자 지정할 수도 있습니다. 이에 대한 예제를 보려면 방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정을 참조하십시오.

SiteMapPath 컨트롤을 사용하면 현재 페이지에서 사이트 계층 구조가 높은 페이지로 뒤로 탐색할 수 있습니다. 그러나 SiteMapPath 컨트롤을 사용하면 현재 페이지에서 계층 구조가 더 낮은 다른 페이지로 앞으로 탐색할 수는 없습니다. SiteMapPath 컨트롤은 검색하는 문서의 경로를 확인해야 하는 뉴스 그룹 또는 게시판 응용 프로그램에 유용합니다.

TreeView 또는 Menu 컨트롤을 사용하면 노드를 열고 특정 페이지를 바로 탐색할 수 있습니다. 이러한 컨트롤은 SiteMapPath 컨트롤처럼 사이트 맵을 바로 읽지 않습니다. 대신 페이지에 사이트 맵을 읽을 수 있는 SiteMapDataSource 컨트롤을 추가합니다. 그런 다음 TreeView 또는 Menu 컨트롤을 SiteMapDataSource 컨트롤에 바인딩하여 사이트 맵을 페이지에 렌더링합니다. TreeView 컨트롤은 다음과 같이 표시합니다.

- Home

   - Services

+ Training

참고:

마스터 페이지를 만들고 이 페이지에 컨트롤을 추가하면 SiteMapPath, TreeView 또는 Menu 컨트롤을 사이트의 모든 페이지에 쉽게 표시할 수 있습니다. 자세한 내용은 ASP.NET 마스터 페이지 개요를 참조하십시오.

사이트 탐색 API

탐색 컨트롤을 사용하면 코드를 약간 사용하거나 아예 사용하지 않고도 사이트 탐색 기능을 페이지에 추가할 수 있으며, 프로그래밍 방식으로 사이트 탐색 기능을 사용할 수도 있습니다. 웹 응용 프로그램을 실행하면 ASP.NET은 사이트 맵 구조를 나타내는 SiteMap 개체를 노출합니다. SiteMap 개체의 모든 멤버는 정적 멤버입니다. 그런 다음 SiteMap 개체는 사이트 맵에 있는 각 노드의 속성이 포함된 SiteMapNode 개체 컬렉션을 노출합니다. SiteMapPath 컨트롤을 사용하는 경우 이 컨트롤은 SiteMapSiteMapNode 개체를 사용하여 해당 링크를 자동으로 렌더링합니다.

코드에 SiteMap, SiteMapNodeSiteMapProvider 개체를 사용하면 사이트 맵 구조 내를 이동하거나, 사용자 지정 컨트롤을 만들어 사이트 맵 데이터를 표시할 수 있습니다. 사이트 맵에 쓸 수 없지만 개체 인스턴스의 사이트 맵 노드를 변경할 수는 있습니다. 자세한 내용은 방법: 프로그래밍 방식으로 메모리에서 사이트 맵 노드 수정 또는 방법: 프로그래밍 방식으로 사이트 맵 노드 열거를 참조하십시오.

사이트 탐색 구성 요소 간의 관계

다음 그림은 ASP.NET 사이트 탐색 구성 요소 간의 관계를 보여 줍니다.

참고 항목

작업

방법: 프로그래밍 방식으로 사이트 맵 노드 열거

개념

ASP.NET 사이트 맵

ASP.NET 사이트 탐색 보안

데이터 액세스 보안

기타 리소스

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