WebForm
- WebForm의 구조 WebForm 구현방식
.aspx와 .cs로 구분되는 방식, partial 키워드의 사용으로 ASP.NET 버전 1.x의 단점을 개선 (.aspx와 .cs 파일간의 종속성 문제)
.aspx의 내부에서 .cs에 구현 할 코드를 작성하는 방식, 기존 ASP와 유사한 방식으로 소스파악 및 배포가 쉽다는 장점이 있지만, 웹디자이너에게 코드부분을 노출한다.
- Page 클래스
ASP.NET 웹 응용 프로그램을 호스팅하는 서버에서 요청한 Web Forms 페이지라고도 하는 .aspx 파일을 나타낸다.
이 파일은 런타임에 Page 개체로 컴파일되고 서버 메모리에 캐시된다.
코드 숨김(Code-Behind) 기술을 사용하여 Web Forms 페이지를 만들려면 이 클래스에서 파생시킨다.
VS와 같은 RAD TOOL에서는 자동으로 이 모델을 사용하여 Web Forms 페이지를 만든다.
Page 개체는 INamingContainer 인터페이스를 구현하는 컨트롤이나 이 인터페이스를 구현하는 컨트롤의 자식 컨트롤을 제외하고 페이지에 있는
모든 서버 컨트롤에 대한 명명 컨테이너 역할을 한다.
Page 클래스는 웹 응용 프로그램의 사용자 인터페이스 역할을 하는 컨트롤이므로 보안 코드 작성 및 응용 프로그램 보안을 위한 최선의 구현 방법이 필요하다.
AutoEventWireup CodeBehind Inherits Trace 추적이 설정되어 있는지 여부를 나타낸다. 추적이 설정되어 있으면 true, 아니면 false. 기본값은 false TraceMode ErrorPage MasterPageFile WarningLevel Debug
- @ Page 지시문(Directive)의 형태와 그 특성
<%@ Page attribute="value" [attribute="value"...] %>
Language
페이지 내의 모든 인라인 렌더링(<% %> 및 <%= %>) 및 코드 선언 블록을 컴파일하는 데 사용되는 언어를 지정.
값은 Visual Basic, C# 또는 JScript를 포함하여, .NET Framework에서 지원되는 모든 언어를 나타낼 수 있지만, 각 페이지에
대해 언어를 하나만 사용하고 지정할 수 있다.
페이지의 이벤트가 자동으로 연결되는지 여부를 나타냅니다. 이벤트 자동 연결이 설정되어 있으면, true이고, 아니면 false.
기본값은 true
페이지와 연결된 클래스를 포함하는 컴파일된 파일의 이름을 지정합니다. 이 특성은 런타임에는 사용되지 않습니다.
ASP.NET 버전 2.0에서는 CodeFile 특성을 사용하여 파일의 이름을 지정하고 Inherits 특성을 사용하여 클래스의 정규화된 이름을
지정
상속할 페이지에 대한 코드 숨김 클래스를 정의. 이 클래스는 Page 클래스에서 파생된 모든 클래스가 가능
추적이 설정되어 있는 경우 페이지에 대해 추적 메시지를 표시하는 방법을 나타낸다.
가능한 값은 SortByTime과 SorByCategory, 추적이 설정된 경우 기본값은 SortByTime
처리되지 않은 예외가 발생하는 경우에 리디렉션할 대상 URL을 정의한다.
중첩된 마스터 페이지 또는 컨텐츠 페이지에 대한 마스터 페이지의 경로를 설정. 상대 경로, 절대 경로 지원
Transaction
페이지에서 트랜잭션이 지원되는지 여부를 나타낸다. 가능한 값은 Disabled, NotSupported, Supported, Required 및 RequiresNew
기본값은 Disabled
컴파일러에서 경고를 오류로 처리하여 페이지의 컴파일 작업을 중단하는 컴파일러 경고 수준을 나타낸다.
가능한 경고 수준은 0에서 4까지이다.
디버그 기호를 사용하여 페이지를 컴파일할지 여부를 나타낸다. 디버그 기호를 사용하여 페이지를 컴파일해야 하면 true,
아니면 false. 이 설정은 성능에 영향을 주므로 개발하는 동안에만 이 특성을 true 설정해야 한다.
다시 게시 페이지 간 게시 서버 전송 콜백 IsCallback = true 로 설정
- ASP.NET 웹 페이지 호출 방식
ASP.NET 웹 페이지는 원래 요청(HTTP GET), 다시 게시(HTTP POST), 다른 페이지로부터의 페이지 간 게시(HTTP POST) 또는
Transfer 메서드나 브라우저 콜백을 사용하여 다른 페이지에서 전송 등의 방법으로 호출된다. Page 클래스는 페이지가 호출된 방식을 확인하는 데
사용할 수 있는 속성을 가지고 있다.
- Page 클래스의 속성종류 : IsPostBack, PreviousPage, IsCrossPagePostBack, IsCallback
원래 요청
-
IsPostBack = true 로 설정
PreviousPage = 소스페이지 참조
IsCrossPagePostBack = true
PreviousPage = 소스페이지 참조
현재 요청에 대해 현재 페이지의 실행을 종료하고 그 페이지의 지정된 URL 경로를 사용하여 새 페이지의 실행을 시작한다.
Transfer 메서드는 QueryString 및 Form 컬렉션을 보존한다.
Transfer 메서드에 의해 전달된 리소스는 접근 권한은 체크하지 않는다. 호출 전에 IsInRole 메서드로 리소스에 대한 접근 권한 체크는 가능
반대로 Redirect 메서드는 Microsoft IIS와 ASP.NET 보안 정책의 모든 인증 및 권한 부여 논리를 거쳐야 한다.
- 출처 및 참고자료 :
MSDN > Page 클래스(System.Web.UI)
MSDN > @ Page
MSDN > 방법: ASP.NET 웹 페이지 호출 방식 확인
MSDN > ASP.NET 웹 페이지에서 페이지 간 게시
MSDN > ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백 구현