แอนโทนี่มัวร์
Microsoft Corporation
ตุลาคม 2543
สรุป: คำอธิบายโดยละเอียดเกี่ยวกับการใช้ ASP+ เพื่อตรวจสอบการควบคุมเว็บ
การแนะนำ
บทความนี้อธิบายรายละเอียดว่า ASP+ การตรวจสอบควบคุมการทำงานอย่างไร หากคุณต้องการสร้างหน้าซับซ้อนด้วยการควบคุมการตรวจสอบหรือคุณต้องการขยายกรอบการตรวจสอบคุณควรอ่านบทความนี้ หากคุณต้องการเรียนรู้ที่จะใช้การควบคุมการตรวจสอบหรือตัดสินใจว่าจะใช้การควบคุมการตรวจสอบดู "การตรวจสอบการป้อนข้อมูลผู้ใช้ใน ASP+ (ภาษาอังกฤษ)"
เริ่มต้น
เรารู้ว่าตลอดกระบวนการพัฒนา ASP+ เป็นสิ่งสำคัญที่จะต้องเข้าใจการตรวจสอบ เมื่อดูที่เว็บไซต์เชิงพาณิชย์ส่วนใหญ่ในวันนี้คุณจะเห็นว่ามีหลายรูปแบบในเว็บไซต์เหล่านี้ที่ได้รับการตรวจสอบอย่างชัดเจนโดยการดำเนินการรหัสที่เขียนด้วยลายมือจำนวนมาก การเขียนรหัสการยืนยันไม่ใช่งานที่น่าสนใจ มันอาจจะมีส่วนร่วมหากคุณต้องการเขียนโค้ดเพื่อแสดงตารางข้อมูลหรือสร้างแผนภูมิทันที แต่ไม่มีใครสามารถยืนยันกับเพื่อนร่วมงานของเขาได้ว่าวิธีการ "เจ๋ง" นี้สามารถห้ามค่า Null ได้ในฟิลด์ชื่อ
ด้วยเหตุผลอื่นการตรวจสอบเว็บแอปพลิเคชันก็ลำบากเช่นกัน HTML 3.2 มีข้อ จำกัด มากมายเกี่ยวกับเนื้อหาที่คุณสามารถควบคุมหรือตอบกลับที่คุณสามารถได้รับจากผู้ใช้ดังนั้นจึงไม่สามารถใช้เทคนิคที่สามารถใช้กับไคลเอนต์ที่ใช้งานได้อย่างสมบูรณ์มากขึ้นเช่นห้ามผู้ใช้เพื่อป้อนอักขระหรือเสียงบี๊บ การใช้สคริปต์เบราว์เซอร์อาจส่งผลให้มีการตรวจสอบที่มีประสิทธิภาพมากขึ้น อย่างไรก็ตามวิธีนี้ยากที่จะพิสูจน์เพราะไม่จำเป็นต้องใช้สคริปต์ในเบราว์เซอร์ของลูกค้าและผู้ใช้ที่เป็นอันตรายสามารถข้ามได้ ดังนั้นเพื่อให้แน่ใจว่าความปลอดภัยของเว็บไซต์จำเป็นต้องทำการตรวจสอบแบบเดียวกันบนเซิร์ฟเวอร์
เมื่อพัฒนา ASP+ความตั้งใจดั้งเดิมของเราคือการใช้ตัวควบคุมเพียงตัวเดียวเพื่อจัดการการตรวจสอบซึ่งอาจเป็นตัวควบคุมกล่องข้อความที่สามารถแสดงข้อผิดพลาดได้ แต่เมื่อฉันออกแบบการควบคุมฉันพบว่าความปรารถนานี้ไม่สามารถรับรู้ได้ เราดูรูปแบบการป้อนข้อมูลจำนวนมากพยายามหาวิธีแก้ปัญหาที่สามารถทำงานกับรูปแบบได้มากที่สุด เราพบว่าแบบฟอร์มการป้อนข้อมูลมีคุณสมบัติที่น่าสนใจมากมาย:
แม้ว่าข้อความแสดงข้อผิดพลาดหรือไอคอนมักจะอยู่ติดกับองค์ประกอบอินพุต แต่ก็มักจะอยู่ในเซลล์ที่แตกต่างกันของตาราง
มักจะมีพื้นที่ในหน้าเพื่อสรุปข้อผิดพลาดทั้งหมด
หลายไซต์รวมถึงสคริปต์ไคลเอนต์เพื่อให้ข้อเสนอแนะที่เร็วขึ้นในขณะที่ป้องกันไม่ให้ไร้เดียงสากลับไปมาพร้อมกับเซิร์ฟเวอร์
ไซต์จำนวนมากที่มีสคริปต์ไคลเอ็นต์แสดงกล่องข้อมูลเมื่อเกิดข้อผิดพลาด
อินพุตข้อความไม่เพียง แต่ตรวจสอบความถูกต้อง แต่ยังรวมถึงรายการแบบเลื่อนลงและปุ่มตัวเลือก
หากฟิลด์ว่างเปล่าเว็บไซต์มักจะแสดงข้อความหรือไอคอนที่แตกต่างจากเมื่อรายการไม่ถูกต้อง
การตรวจสอบความถูกต้องจำนวนมากเป็นการเปลี่ยนที่ดีสำหรับการแสดงออกที่ใช้กันทั่วไป
การตรวจสอบมักจะขึ้นอยู่กับการเปรียบเทียบระหว่างสองอินพุต
งานตรวจสอบ 90% หรือมากกว่านั้นเป็นการดำเนินการทั่วไปเช่นการตรวจสอบชื่อหรือรหัสไปรษณีย์ เว็บไซต์ส่วนใหญ่ยังคงทำงานเหล่านี้ซ้ำ ๆ
เนื่องจากความแตกต่างระหว่างไซต์มักจะมีขนาดใหญ่เกินไปที่จะได้รับโซลูชันที่สมบูรณ์แบบในการจัดการงานการตรวจสอบทั้งหมดสำหรับแต่ละไซต์
เมื่อคำนึงถึงทั้งหมดข้างต้นโซลูชันสุดท้ายรวมถึงการควบคุมการตรวจสอบความถูกต้องห้าตัวการควบคุมการตรวจสอบความถูกต้องและการรวมเข้ากับวัตถุหน้า เป็นที่ชัดเจนว่าจะต้องขยายโซลูชันและจำเป็นต้องมี API ทั้งในไคลเอนต์และเซิร์ฟเวอร์เพื่อให้ความร่วมมือ
เราพบผ่านการตรวจสอบความถูกต้องต่าง ๆ ที่ดำเนินการในการวิจัยของเราว่าเราดูเหมือนจะต้องมีกล่องเครื่องมือขนาดใหญ่ ในสภาพแวดล้อมส่วนประกอบส่วนใหญ่เช่นMicrosoft®ActiveX®เราอาจพยายามรวมฟังก์ชั่นทั้งหมดของการควบคุมการตรวจสอบไว้ในการควบคุมเดียวเพื่อจัดการคุณสมบัติที่แตกต่างกันในโหมดที่แตกต่างกัน อย่างไรก็ตามโชคดีที่มีการสืบทอดทางเวทย์มนตร์ในMicrosoft® .NET Framework ซึ่งให้ชุดของการควบคุมเพื่อดำเนินการตรวจสอบความถูกต้องเฉพาะของคุณสมบัติเฉพาะเนื่องจากความพยายามพิเศษที่จำเป็นในการได้รับการควบคุมใหม่แต่ละตัวมีขนาดเล็กมาก
งานส่วนใหญ่ที่ทำโดยการควบคุมเหล่านี้จะถูกนำไปใช้ใน basevalidator ผู้ปกครองทั่วไปของพวกเขา นอกจากนี้คุณยังสามารถได้รับจาก basevalidator หรือการควบคุมอื่น ๆ เพื่อทำงานทั้งหมด ในความเป็นจริงแม้แต่ basevalidator ก็ขี้เกียจเกินไปที่จะใช้คุณสมบัติข้อความของตัวเอง แต่สืบทอดมาจากคุณสมบัติฉลาก
เมื่อใดและเกิดอะไรขึ้น?
การทำความเข้าใจลำดับเหตุการณ์มีประสิทธิภาพมากเมื่อทำงานกับหน้าเว็บที่มีการตรวจสอบความถูกต้องของเว็บควบคุม หากเงื่อนไขการตรวจสอบเป็นทางเลือกคุณต้องรู้ว่าเมื่อใดที่การตรวจสอบจะดำเนินการบนไคลเอนต์และเซิร์ฟเวอร์ หากคุณต้องการเขียนกิจวัตรการตรวจสอบของคุณเองอาจใช้เวลานานมากหรือมีผลข้างเคียง ในขณะเดียวกันก็เป็นสิ่งสำคัญที่จะต้องเข้าใจช่วงเวลาของการโทรหารูทีนการตรวจสอบ
ก่อนอื่นมาดูเซิร์ฟเวอร์