앤서니 무어
Microsoft Corporation
2000 년 10 월
요약 : 웹 컨트롤을 확인하기 위해 ASP+ 사용에 대한 자세한 설명
소개
이 기사에서는 ASP+ Verification 컨트롤이 어떻게 작동하는지 자세히 설명합니다. 확인 컨트롤이있는 복잡한 페이지를 생성하려고하거나 확인 프레임 워크를 확장하려면이 기사를 읽는 것이 좋습니다. 확인 컨트롤 사용을 배우거나 확인 컨트롤을 사용할지 여부를 결정하려면 "ASP+ (English)의 사용자 입력 확인"을 참조하십시오.
시작하기
우리는 ASP+ 개발 프로세스 전체에서 검증을 이해하는 것이 중요하다는 것을 알고 있습니다. 오늘날 대부분의 상업용 웹 사이트를 살펴보면이 사이트에는 많은 필기 코드를 실행하여 분명히 검증되는 많은 형태가 있음을 알 수 있습니다. 검증 코드 작성은 흥미로운 작업이 아닙니다. 데이터 테이블을 표시하거나 차트를 즉시 생성하기 위해 코드를 작성하려는 경우에도 매력적일 수 있지만,이 "쿨한"접근 방식이 Null 값을 이름 필드에 금지 할 수 있음을 동료에게 확인할 수는 없습니다.
다른 이유로, 웹 응용 프로그램의 확인도 매우 번거 롭습니다. HTML 3.2에는 사용자로부터 얻을 수있는 컨텐츠 또는 피드백에 대한 많은 제한 사항이 있으므로 사용자가 특정 캐릭터를 입력하거나 경고음을 입력하도록 금지하는 것과 같이보다 완벽한 기능 고객에게 사용할 수있는 기술을 적용 할 수 없습니다. 브라우저 스크립트를 사용하면 더 강력한 검증이 발생할 수 있습니다. 그러나이 방법은 클라이언트 브라우저에 반드시 스크립트가없고 악의적 인 사용자가이를 우회 할 수 있기 때문에 증명하기가 어렵습니다. 따라서 사이트의 보안을 보장하려면 서버에서 동일한 검사를 수행해야합니다.
ASP+를 개발할 때 원래 의도는 하나의 컨트롤 만 사용하여 검증을 처리하는 것이 었습니다. 이는 오류를 표시 할 수있는 텍스트 상자 컨트롤 일 수 있습니다. 그러나 제가 컨트롤을 설계 할 때, 나는이 소원을 실현할 수 없다는 것을 알았습니다. 우리는 가능한 한 많은 양식으로 작동 할 수있는 솔루션을 찾으려고 많은 수의 데이터 입력 양식을 살펴 보았습니다. 데이터 입력 양식에는 많은 흥미로운 기능이 있음을 발견했습니다.
오류 메시지 나 아이콘은 종종 입력 요소에 인접 해 있지만 거의 항상 테이블의 다른 셀에 있습니다.
페이지에는 모든 오류를 요약 할 영역이 종종 있습니다.
많은 사이트에는 더 빠른 피드백을 제공하기 위해 클라이언트 스크립트가 포함되어 있으며 헛된 피드백이 서버와 함께 오가는 것을 방지합니다.
클라이언트 스크립트가 포함 된 많은 사이트에는 오류가 발생할 때 정보 상자가 표시됩니다.
텍스트 입력은 유효성 검사뿐만 아니라 드롭 다운 목록 및 라디오 버튼도 있습니다.
필드가 비어 있으면 사이트는 일반적으로 항목이 유효하지 않은 경우와 다른 메시지 나 아이콘을 표시합니다.
많은 유효성 검사는 일반적으로 사용되는 표현식에 대한 좋은 대체입니다.
검증은 일반적으로 두 입력의 비교를 기반으로합니다.
검증 작업의 90% 이상은 이름 또는 우편 번호를 확인하는 것과 같은 일반적인 작업입니다. 대부분의 사이트는 여전히 이러한 작업을 반복적으로 수행하는 것 같습니다.
사이트 간의 차이는 종종 너무 크기 때문에 각 사이트의 모든 검증 작업을 처리하기위한 완벽한 솔루션을 얻기에는 너무 크기 때문입니다.
위의 모든 것을 고려하여 최종 솔루션에는 5 가지 유효성 검사기 컨트롤, ValidationSummary Control 및 Page 객체와의 통합이 포함되었습니다. 또한 솔루션을 확장해야하며 클라이언트와 서버 모두에 협력하려면 API가 필요합니다.
우리는 연구에서 수행 된 다양한 검증을 통해 더 큰 도구 상자가 필요하다는 것을 발견했습니다. Microsoft® ActiveX®와 같은 대부분의 구성 요소 환경에서 검증 컨트롤의 모든 기능을 하나의 컨트롤에 통합하여 다른 모드에서 다른 속성을 처리하려고 시도했을 수 있습니다. 그러나 다행스럽게도 Microsoft® .NET 프레임 워크에는 마법의 상속이 있으며, 이는 각각의 새로운 제어를 도출하는 데 필요한 추가 노력이 매우 작기 때문에 특정 속성의 특정 검증을 수행 할 수있는 일련의 컨트롤을 제공합니다.
이러한 컨트롤에 의해 수행 된 대부분의 작업은 공통 상위베이스 볼리 디터에서 구현됩니다. BaseValidator 또는 기타 컨트롤에서 파생하여 모든 작업을 수행 할 수도 있습니다. 실제로, BaseValidator조차도 자체 텍스트 속성을 구현하기에는 너무 게으르지 만 레이블 속성에서 물려받습니다.
언제 그리고 무슨 일이 있었습니까?
유효성 검사 웹 컨트롤이 포함 된 페이지로 작업 할 때 일련의 이벤트를 이해하는 것이 매우 효과적입니다. 확인 조건이 선택 사항 인 경우 클라이언트 및 서버에서 확인이 언제 수행되는지 정확히 알아야합니다. 자신의 검증 루틴을 작성하려면 시간이 많이 걸리거나 부작용이 발생할 수 있습니다. 동시에, 검증 루틴을 호출하는시기를 이해하는 것도 중요합니다.
먼저 서버를 살펴 보겠습니다.