ASP.NET 프로필 속성 개요
업데이트: 2007년 11월
대부분의 응용 프로그램에서 사용자의 고유한 정보를 저장하고 사용할 수 있습니다. 사용자가 사이트를 방문할 경우에는 이전에 저장한 정보를 사용하여 개별 사용자에 맞게 설정된 웹 응용 프로그램을 제공할 수 있습니다. 응용 프로그램을 개별 사용자에 맞게 설정하려면 다양한 요소가 필요합니다. 고유한 사용자 식별자를 사용하여 정보를 저장하고, 사용자가 사이트를 다시 방문할 때 해당 사용자를 인식하여 필요한 사용자 정보를 페치할 수 있어야 합니다. 이러한 모든 작업을 자동으로 수행할 수 있는 ASP.NET 프로필 기능을 사용하면 응용 프로그램을 단순화할 수 있습니다.
ASP.NET 프로필 기능은 정보를 개별 사용자와 연결하여 영구적인 형식으로 저장합니다. 프로필을 사용하면 고유한 데이터베이스를 만들어 유지 관리하지 않고도 사용자 정보를 관리할 수 있습니다. 또한 응용 프로그램의 모든 위치에서 액세스할 수 있는 강력한 형식의 API를 사용하여 ASP.NET 프로필의 사용자 정보를 사용할 수 있습니다.
프로필을 사용하여 모든 형식의 개체를 저장할 수 있습니다. 프로필 기능은 형식 안전성이 유지되는 방식으로 데이터를 사용하는 동시에 거의 모든 종류의 데이터를 정의하고 유지 관리할 수 있도록 하는 일반적인 저장소 기능을 제공합니다.
ASP.NET 프로필 작업 방법
프로필을 사용하려면 먼저 ASP.NET 웹 응용 프로그램의 구성 파일을 수정하여 프로필을 사용하도록 설정합니다. 구성 작업의 일부로 프로필 공급자, 즉 프로필 데이터 저장 및 검색 같은 하위 수준의 작업을 수행하는 내부 클래스를 지정합니다. .NET Framework에 포함되어 프로필 데이터를 SQL Server에 저장하는 기본 프로필 공급자를 사용하거나 프로필 공급자 구현 항목에 설명된 대로 프로필 공급자를 사용자가 직접 만들어 사용할 수 있습니다. 사용자가 선택한 데이터베이스에 연결하는 SqlProfileProvider 인스턴스를 지정하거나, 프로필 데이터를 로컬 웹 서버에 저장하는 기본 SqlProfileProvider 인스턴스를 사용할 수 있습니다.
유지 관리할 값의 속성 목록을 정의하여 프로필 기능을 구성합니다. 예를 들어 응용 프로그램에서 일기 예보 같은 지역별 정보를 제공할 수 있도록 사용자의 우편 번호를 저장할 수 있습니다. 구성 파일에서 PostalCode라는 프로필 속성을 정의합니다. 구성 파일의 profile 섹션은 다음과 같습니다.
<profile>
<properties>
<add name="PostalCode" />
</properties>
</profile>
응용 프로그램이 실행되면 ASP.NET에서는 ProfileBase 클래스를 상속하여 동적으로 생성되는 ProfileCommon 클래스를 만듭니다. 동적 ProfileCommon 클래스에는 응용 프로그램 구성에 지정된 프로필 속성 정의를 통해 만들어진 속성이 포함되어 있습니다. 그런 다음 이 동적 ProfileCommon 클래스의 인스턴스가 현재 HttpContext의 Profile 속성 값으로 설정되어 응용 프로그램의 페이지에서 사용할 수 있습니다.
응용 프로그램에서 저장할 값을 하나 이상 수집한 다음 이전에 정의한 프로필 속성에 할당합니다. 예를 들어 사용자가 우편 번호를 입력하는 텍스트 상자가 응용 프로그램의 홈 페이지에 포함되어 있을 수 있습니다. 사용자가 우편 번호를 입력하면 다음 예제와 같이 Profile 속성을 설정하여 현재 사용자에 대한 값을 저장합니다.
Profile.PostalCode = txtPostalCode.Text
Profile.PostalCode = txtPostalCode.Text;
Profile.PostalCode의 값을 설정하면 이 값이 현재 사용자에 대해 자동으로 저장됩니다. 현재 사용자를 확인하기 위해 코드를 작성하거나 값을 데이터베이스에 명시적으로 저장할 필요가 없습니다. 프로필 기능을 통해 이러한 작업이 자동으로 수행됩니다.
이 값을 사용하려면 값을 설정할 때와 거의 같은 방법을 사용하여 가져오면 됩니다. 예를 들어 다음 코드 예제에서는 GetWeatherInfo라는 가상 함수를 호출하고 프로필에 저장된 현재 사용자의 우편 번호를 이 함수에 전달하는 방법을 보여 줍니다.
weatherInfo = GetWeatherInfo( Profile.PostalCode )
weatherInfo = GetWeatherInfo( Profile.PostalCode );
현재 사용자를 명시적으로 확인하거나 데이터베이스 조회를 수행할 필요가 없습니다. 프로필에서 속성 값을 가져오기만 하면 ASP.NET에서 필요한 작업을 수행하여 현재 사용자를 식별하고 영구 프로필 저장소에서 값을 찾습니다.