다음을 통해 공유


웹 파트 개인 설정 개요

업데이트: 2007년 11월

특정 웹 응용 프로그램에서 사용자가 응용 프로그램의 사용자 인터페이스 및 동작을 수정하거나 개인 설정할 수 있도록 구성할 수 있습니다. ASP.NET 웹 파트 컨트롤 집합에서는 주요 기능 중 하나인 개인 설정을 통해 이 기능을 제공합니다. 개인 설정을 사용하면 웹 파트 컨트롤의 속성 또는 상태를 장기 저장소에 저장할 수 있으며 특정 브라우저 세션의 제한을 받지 않습니다.

개인 설정 동작 방식

개인 설정을 사용하면 웹 파트 컨트롤에 대해 몇 가지 고유한 특징을 가지는 속성을 만들 수 있습니다. 개인 설정할 수 있는 속성에는 다음과 같은 특징이 있습니다.

  • 특정 사용자 및 웹 페이지의 ID에 연결됩니다. 각 페이지에서 개인 설정할 수 있는 컨트롤에 대한 각 사용자의 설정을 개인 설정 데이터에 저장할 수 있습니다. 사용자는 이 데이터를 통해 웹 페이지의 UI를 수정하고 각 기본 설정을 저장할 수 있습니다.

  • 수명이 깁니다. 사용자 개인 설정은 단일 브라우저 세션에 연결되지 않습니다. 이러한 설정은 장기 저장소에 저장되므로 응용 프로그램에서는 사용자가 특정 페이지를 방문할 때마다 해당 사용자의 설정을 검색할 수 있습니다.

    개인 설정 기능은 ASP.NET 응용 프로그램 서비스 데이터베이스를 사용하여 개인 설정 데이터를 저장합니다. 기본적으로 ASP.NET에서는 ASP.NET 응용 프로그램에서 개인 설정 또는 역할, 멤버 자격, 프로필 같은 다른 응용 프로그램 서비스 중 하나를 처음으로 사용할 때 "app_data"라는 하위 폴더에 이 데이터베이스를 자동으로 만듭니다. 또한 ASP.NET에서는 기본적으로 이 데이터베이스를 모든 응용 프로그램 서비스에 대한 데이터베이스 스키마가 포함된 단일 SQL Server Express 데이터베이스 파일로 만듭니다. Web.config 파일을 사용하여 개인 설정을 위한 별도의 데이터베이스 파일이 만들어지도록 응용 프로그램을 구성할 수 있습니다. 또한 기본 SQL Server Express 데이터베이스 파일을 사용하는 대신 응용 프로그램 서비스 데이터를 저장할 SQL Server 데이터베이스를 Web.config 파일에 지정할 수도 있습니다.

  • 공급자 계층을 통해 지속됩니다. 개인 설정 데이터를 저장하고 검색하는 메커니즘은 공급자 구성 요소와 데이터 저장소로 구성됩니다. ASP.NET에는 기본 Microsoft SQL 공급자와 데이터베이스가 포함되어 있습니다. 사용자 지정 공급자를 만든 다음 임의의 데이터 저장소를 사용하도록 구성할 수도 있습니다.

  • 모든 웹 파트 컨트롤에서 선언적입니다. 사용자 지정 컨트롤을 개발하는 경우 모든 웹 파트 컨트롤에 대한 특정 속성을 개인 설정에 사용할 수 있도록 코드에 Personalizable 특성을 추가할 수 있습니다. ASP.NET 서버 컨트롤, 사용자 지정 서버 컨트롤 또는 사용자 정의 컨트롤도 웹 파트 컨트롤로 사용할 수 있으므로 WebPart 클래스에서 파생되는 사용자 지정 컨트롤뿐만 아니라 이러한 컨트롤에도 같은 내용이 적용됩니다.

    참고:

    일반 속성은 개인 설정할 수 있는 속성처럼 지속될 수 없으므로 처리 방식이 다르다는 점을 이해해야 합니다. WebPart 컨트롤 또는 다른 서버 컨트롤을 프로그래밍 방식으로 WebPartZoneBase 영역에 추가하는 경우, Label 컨트롤에 Text 속성을 설정하는 것처럼 개인 설정할 수 없는 속성을 프로그래밍 방식으로 설정하려고 하면 컨트롤이 추가된 후 이러한 속성이 기본값으로 다시 설정됩니다. 이러한 속성 값을 장기 개인 설정 저장소에 지속할 수 있는 방법이 없기 때문입니다. 속성을 장기 저장소에 지속하려면 소스 코드에서 해당 속성이 Personalizable 특성으로 표시되어 있어야 합니다. 또는 장기 저장소에 지속되지는 않지만 같은 브라우저 세션 내에서 요청 간에 속성을 지속하려면 뷰 상태를 사용합니다.

개인 설정 및 다른 ASP.NET 기능

개인 설정은 웹 응용 프로그램의 상태 데이터를 지속하는 다른 ASP.NET 방법과 비교하여 다음과 같은 여러 가지 면에서 차이가 있습니다.

  • 개인 설정은 웹 파트의 기능입니다. 개인 설정을 단독으로 사용할 수 없습니다. 개인 설정을 사용하려면 컨트롤에 웹 파트 기능이 포함되도록 해당 컨트롤을 WebPartZone 내에서 사용해야 합니다.

    참고:

    ASP.NET 서버 컨트롤, 사용자 지정 컨트롤 또는 사용자 정의 컨트롤은 개인 설정 기능을 활용하기 위해 웹 파트 컨트롤로 사용될 수 있습니다.

  • 개인 설정은 뷰 상태와 다릅니다. 뷰 상태와 개인 설정은 둘 다 컨트롤 상태 데이터를 지속하지만 뷰 상태 데이터는 현재 브라우저 세션 동안에만 지속되고 개인 설정 데이터는 장기적으로 지속됩니다.

  • 개인 설정은 프로필과 다릅니다 개인 설정은 특정 웹 페이지에 있는 컨트롤의 사용자별 상태 데이터를 저장합니다. 장바구니 응용 프로그램의 계정 정보처럼 사용자와 관련되고 웹 응용 프로그램의 여러 페이지에 사용하려는 정보는 프로필에 저장해야 합니다. 자세한 내용은 ASP.NET 프로필 속성 개요를 참조하십시오.

개인 설정의 주요 개념

웹 파트 컨트롤과 함께 개인 설정을 사용하는 경우에는 개인 설정의 동작 방식에 영향을 주는 몇 가지 개념을 이해해야 합니다.

첫 번째 개념은 페이지 개인 설정 범위입니다. 페이지 개인 설정 범위는 페이지에서 개인 설정 변경 내용을 적용할 수 있는 사용자의 범위입니다. 특정 시점에서 웹 파트 페이지는 공유 범위와 사용자 범위라는 두 가지 페이지 개인 설정 범위 중 하나에 속할 수 있습니다. 공유 범위에서는 페이지의 개인 설정 변경 내용이 모든 사용자에게 적용되고 사용자 범위에서는 페이지의 개인 설정 변경 내용이 현재 사용자에게만 적용됩니다.

관련된 두 번째 개념은 컨트롤의 표시 수준입니다. 컨트롤 표시 수준에 따라 특정 컨트롤을 개별 사용자가 볼 수 있는지 아니면 모든 사용자가 볼 수 있는지 결정됩니다. 페이지의 각 WebPart 컨트롤은 해당 페이지의 모든 사용자가 볼 수 있는 공유 컨트롤이거나 개별 사용자만 볼 수 있는 사용자 단위 컨트롤입니다. 표시 수준은 컨트롤을 페이지에 추가하는 방법에 따라 달라집니다. 웹 페이지의 태그에 컨트롤을 선언하여 추가된 컨트롤(정적 컨트롤)은 항상 공유 컨트롤입니다. 응용 프로그램 코드를 통해 또는 사용자가 컨트롤 카탈로그에서 선택하여 추가된 컨트롤(동적 컨트롤)의 표시 수준은 해당 페이지의 현재 개인 설정 범위에 따라 결정됩니다. 페이지가 공유 범위에 속해 있으면 동적으로 추가된 컨트롤이 공유 컨트롤이 되고 페이지가 사용자 범위에 속해 있으면 사용자 단위 컨트롤이 됩니다.

세 번째 개념은 속성 범위입니다. 소스 코드에 Personalizable 특성을 사용하여 컨트롤에 대해 개인 설정할 수 있는 속성을 만드는 경우 이 속성의 개인 설정 범위를 Shared 또는 User(User가 기본 범위)로 설정할 수 있습니다. 이렇게 하면 페이지 범위가 Shared인 경우 컨트롤에서 모든 사용자가 개인 설정할 수 있는 속성 및 권한이 부여된 사용자만 개인 설정할 수 있는 속성을 세밀하게 제어할 수 있습니다.

이러한 페이지 개인 설정 범위, 컨트롤 표시 수준 및 속성 개인 설정 범위의 개념을 함께 사용하여 사용자가 웹 파트 컨트롤을 보고 개인 설정하는 방식에 대한 옵션 범위를 만듭니다. 다음 표에서는 사용자가 다양한 범위에서 웹 파트 컨트롤을 개인 설정하는 경우 해당 컨트롤의 동작 방식을 요약하여 설명합니다.

컨트롤 표시 수준

공유 범위의 페이지

사용자 범위의 페이지

공유 컨트롤. WebPart 컨트롤은 기본적으로 공유됩니다.

권한이 부여된 사용자는 모든 사용자에 대한 컨트롤에서 공유 범위 속성과 사용자 범위 속성을 둘 다 개인 설정할 수 있습니다.

동적 컨트롤, 즉 프로그래밍 방식으로 페이지에 추가되었거나 컨트롤 카탈로그에서 선택된 컨트롤의 경우 권한이 부여된 사용자는 모든 사용자가 사용하지 못하도록 컨트롤을 영구적으로 삭제할 수 있습니다.

정적 컨트롤, 즉 .aspx 페이지의 태그에 선언된 컨트롤의 경우에는 삭제할 수 없지만 권한이 부여된 사용자는 모든 사용자가 사용하지 못하도록 컨트롤을 닫을 수는 있습니다.

개별 사용자는 공유 범위의 속성을 개인 설정할 수 없습니다. 개별 사용자는 사용자 범위 속성을 개인 설정할 수 있으며 이러한 속성의 값은 페이지가 공유 범위에 있었을 때 할당된 속성 값보다 우선 순위가 높습니다. 컨트롤에 대한 사용자별 개인 설정 데이터가 손실되거나 다시 설정되면 사용자 범위 속성의 값은 페이지가 공유 범위에 있었을 때 할당된 값으로 되돌아갑니다.

개별 사용자는 공유 컨트롤을 직접 닫아 페이지 카탈로그에 추가할 수 있지만 컨트롤을 영구적으로 삭제할 수는 없습니다.

사용자 단위 컨트롤

페이지가 공유 범위에 있는 경우에는 컨트롤이 페이지에 나타나지 않으므로 해당 컨트롤을 개인 설정할 수 없습니다. 페이지가 사용자 범위에 있는 경우에만 컨트롤이 나타납니다.

컨트롤 인스턴스는 완전히 전용이므로 개별 사용자는 해당 컨트롤에 대해 공유 범위와 사용자 범위의 개인 설정 가능 속성을 둘 다 개인 설정할 수 있습니다.

개별 사용자는 컨트롤을 영구적으로 삭제할 수도 있습니다.

필수 개인 설정 구성 요소

다음 표에서는 개인 설정에 필요하고 개인 설정을 사용할 때마다 직접 또는 간접적으로 사용하는 웹 파트 컨트롤 집합의 두 가지 구성 요소에 대해 설명합니다.

웹 파트 컨트롤

설명

WebPartManager

개인 설정 데이터의 수명 주기 및 페이지의 모든 웹 파트를 관리하고 개인 설정을 사용하거나 사용하지 않도록 합니다. 웹 파트 페이지마다 WebPartManager 컨트롤이 하나(만) 필요합니다.

WebPartPersonalization

개인 설정 작업을 수행하는 데 필요한 논리를 구현합니다.

참고 항목

개념

ASP.NET 웹 파트 개요

웹 파트 개인 설정을 사용하는 데 필요한 요구 사항

ASP.NET 프로필 속성 개요

참조

웹 파트 컨트롤 설정 개요