ข้อความ/WATERSWEA
1. ทำความเข้าใจกับไฟล์ Web.config
ไฟล์ Web.config เป็นไฟล์ข้อความ XML ซึ่งใช้เพื่อจัดเก็บข้อมูลการกำหนดค่าของแอปพลิเคชันเว็บ ASP.NET (เช่น วิธีการตรวจสอบสิทธิ์ที่ใช้กันทั่วไปสำหรับการตั้งค่า ASP .NET Web application) ซึ่งสามารถปรากฏในทุกไดเร็กทอรีของแอปพลิเคชัน เมื่อคุณสร้างแอปพลิเคชันเว็บใหม่ผ่าน VB.NET จะเป็นค่าเริ่มต้น
ไฟล์ Web.config ประกอบด้วยการตั้งค่าเริ่มต้น และไดเรกทอรีย่อยทั้งหมดสืบทอดการตั้งค่าการกำหนดค่า หากคุณต้องการแก้ไขการตั้งค่าคอนฟิกูเรชันของไดเร็กทอรีย่อย คุณสามารถสร้างไฟล์ Web.config ใหม่ในไดเร็กทอรีย่อยได้ โดยสามารถให้ข้อมูลการกำหนดค่าเพิ่มเติมจากข้อมูลการกำหนดค่าที่สืบทอดมาจากไดเร็กทอรีหลัก และยังสามารถแทนที่หรือแก้ไขการตั้งค่าที่กำหนดไว้ในไดเร็กทอรีหลักได้อีกด้วย
การปรับเปลี่ยนไฟล์ Web.config ณ รันไทม์อาจมีผลโดยไม่ต้องเริ่มบริการใหม่ (หมายเหตุ: ข้อยกเว้นสำหรับส่วน <processModel>) แน่นอนว่าไฟล์ Web.config สามารถขยายได้ คุณสามารถปรับแต่งพารามิเตอร์การกำหนดค่าใหม่ และเขียนตัวจัดการส่วนการกำหนดค่าเพื่อจัดการได้
2. ไฟล์การกำหนดค่า web.config (การตั้งค่าเริ่มต้น) รหัสต่อไปนี้ทั้งหมดควรอยู่ใน
<configuration>
<system.web>
และ
</system.web>
</configuration>
แท็ก XML นี้จะถูกละเว้นในตัวอย่างต่อไปนี้เพื่อวัตถุประสงค์ในการเรียนรู้
1. ฟังก์ชันส่วน <authentication>
: กำหนดค่าการสนับสนุนการตรวจสอบสิทธิ์ ASP.NET (สำหรับ Windows, แบบฟอร์ม, PassPort, ไม่มี) องค์ประกอบนี้สามารถประกาศได้ในระดับคอมพิวเตอร์ ไซต์ หรือแอปพลิเคชันเท่านั้น ต้องใช้องค์ประกอบ <authentication> กับส่วน <authorization>
ตัวอย่าง:
ตัวอย่างต่อไปนี้คือไซต์การกำหนดค่าการตรวจสอบสิทธิ์ตามแบบฟอร์ม เมื่อผู้ใช้ที่ไม่ได้เข้าสู่ระบบเข้าถึงเว็บเพจที่ต้องมีการตรวจสอบสิทธิ์ เว็บเพจจะข้ามไปยังเว็บเพจเข้าสู่ระบบโดยอัตโนมัติ
<โหมดการรับรองความถูกต้อง = "แบบฟอร์ม">
<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>
</authentication>
องค์ประกอบ loginUrl แสดงถึงชื่อของหน้าเว็บเข้าสู่ระบบ และชื่อแสดงถึงชื่อคุกกี้
2.
บทบาทของส่วน <authorization> : ควบคุมการเข้าถึงทรัพยากร URL ของไคลเอ็นต์ (เช่น การอนุญาตให้ผู้ใช้ที่ไม่ระบุชื่อเข้าถึง) องค์ประกอบนี้สามารถประกาศได้ทุกระดับ (คอมพิวเตอร์ ไซต์ แอปพลิเคชัน ไดเร็กทอรีย่อย หรือเพจ) จำเป็นต้องใช้ร่วมกับส่วน <authentication>
ตัวอย่าง: ตัวอย่างต่อไปนี้ปิดการใช้งานการเข้าถึงของผู้ใช้ที่ไม่ระบุชื่อ
<การอนุญาต>
<ปฏิเสธผู้ใช้="?"/>
</authorization>
หมายเหตุ: คุณสามารถใช้ user.identity.name เพื่อรับชื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องในปัจจุบันที่คุณสามารถใช้ได้
วิธีการ web.Security.FormsAuthentication.RedirectFromLoginPage เปลี่ยนเส้นทางผู้ใช้ที่ได้รับการรับรองความถูกต้องไปยังเพจที่ผู้ใช้เพิ่งร้องขอ สำหรับตัวอย่างเฉพาะ โปรดดูที่:
การตรวจสอบแบบฟอร์ม http://www.fanvb.net/websample/dataauth.aspx
3. <คอมไพล์ >
บทบาทของส่วน: กำหนดการตั้งค่าการคอมไพล์ทั้งหมดที่ใช้โดย ASP.NET แอตทริบิวต์การตรวจแก้จุดบกพร่องเริ่มต้นคือ "True" ควรตั้งค่าเป็น True หลังจากที่โปรแกรมถูกคอมไพล์และส่งมอบสำหรับการใช้งาน (รายละเอียดอธิบายไว้ในไฟล์ Web.config ตัวอย่างจะถูกละไว้ที่นี่)
4.
บทบาท <customErrors>: สำหรับ ASP แอปพลิเคชัน NET ให้ข้อมูลเกี่ยวกับข้อความแสดงข้อผิดพลาดแบบกำหนดเอง ใช้ไม่ได้กับข้อผิดพลาดที่เกิดขึ้นในบริการเว็บ XML
ตัวอย่าง: เมื่อเกิดข้อผิดพลาด ให้ข้ามไปยังหน้าข้อผิดพลาดที่กำหนดเอง
<customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly">
</customErrors>
องค์ประกอบ defaultRedirect แสดงถึงชื่อของหน้าเว็บข้อผิดพลาดที่กำหนดเอง องค์ประกอบโหมดระบุว่า: แสดงข้อมูลที่กำหนดเอง (เป็นมิตร) ให้กับผู้ใช้ที่ไม่ได้ทำงานบนเว็บเซิร์ฟเวอร์ในเครื่อง
5.
บทบาทของส่วน <httpRuntime>: กำหนดการตั้งค่ารันไทม์ ASP.NET HTTP ส่วนนี้สามารถประกาศในระดับคอมพิวเตอร์ ไซต์ แอปพลิเคชัน และไดเร็กทอรีย่อย
ตัวอย่าง: ควบคุมขนาดสูงสุดของไฟล์ที่ผู้ใช้อัปโหลดเป็น 4M เวลาสูงสุด 60 วินาที และจำนวนคำขอสูงสุดเป็น 100
<httpRuntime maxRequestLength="4096"ExecutionTimeout="60" appRequestQueueLimit="100"/>
6
บทบาท<pages>
: เพื่อระบุการตั้งค่าการกำหนดค่าเฉพาะสำหรับเพจ (เช่น ว่าจะเปิดใช้งานสถานะเซสชัน สถานะการดู ว่าจะตรวจจับอินพุตของผู้ใช้หรือไม่ เป็นต้น) <pages> สามารถประกาศได้ในระดับคอมพิวเตอร์ ไซต์ แอปพลิเคชัน และไดเร็กทอรีย่อย
ตัวอย่าง: อย่าตรวจพบว่ามีข้อมูลที่อาจเป็นอันตรายในเนื้อหาที่ผู้ใช้ป้อนในเบราว์เซอร์หรือไม่ (หมายเหตุ: รายการนี้จะถูกตรวจพบโดยค่าเริ่มต้น หากคุณใช้การไม่ตรวจจับ คุณต้องเข้ารหัสหรือตรวจสอบอินพุตของผู้ใช้) ลูกค้า สถานะมุมมองที่เข้ารหัสจะถูกตรวจสอบเมื่อมีการโพสต์เพจกลับ เพื่อตรวจสอบว่าสถานะมุมมองไม่ได้ถูกแก้ไขในฝั่งไคลเอ็นต์ (หมายเหตุ: รายการนี้ไม่ได้รับการตรวจสอบตามค่าเริ่มต้น)
<pages buffer="true" EnableViewStateMac="true" validateRequest="false"/>
7. ฟังก์ชัน <sessionState>
: กำหนดการตั้งค่าสถานะเซสชันสำหรับแอปพลิเคชันปัจจุบัน (เช่น การตั้งค่าว่า เพื่อเปิดใช้งานสถานะเซสชัน โดยที่สถานะเซสชันถูกบันทึกไว้)
ตัวอย่าง:
<sessionState mode="InProc" cookieless="true" timeout="20"/>
</sessionState>
หมายเหตุ:
mode="InProc" หมายถึง: เก็บสถานะเซสชันไว้ในเครื่อง (คุณยังสามารถเลือกที่จะเก็บไว้ในเซิร์ฟเวอร์ระยะไกลหรือเซิร์ฟเวอร์ SAL หรือปิดใช้งานสถานะเซสชัน)
cookieless="true" หมายถึง: หากเบราว์เซอร์ของผู้ใช้ไม่ สนับสนุน สถานะเซสชันถูกเปิดใช้งานเมื่อมีการใช้คุกกี้ (ค่าเริ่มต้นคือ False)
timeout="20" หมายถึง: จำนวนนาทีที่เซสชันสามารถไม่ได้ใช้งาน
8.
ฟังก์ชัน <trace>: กำหนดค่าบริการติดตาม ASP.NET ซึ่งส่วนใหญ่ใช้สำหรับ การทดสอบโปรแกรมเพื่อพิจารณาว่าข้อผิดพลาดเกิดขึ้นที่ใด
ตัวอย่าง: ต่อไปนี้คือการกำหนดค่าเริ่มต้นใน Web.config:
<trace Enable="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
หมายเหตุ:
Enabled="false" หมายถึง ไม่ใช่ Enable tracing; requestLimit="10" ระบุจำนวนคำขอติดตามที่จัดเก็บไว้ในเซิร์ฟเวอร์
pageOutput="false" ระบุว่าสามารถเข้าถึงเอาต์พุตการติดตามได้ผ่านยูทิลิตีการติดตามเท่านั้น
TraceMode="SortByTime" ระบุว่าข้อมูลการติดตามถูกแสดงอยู่ใน ลำดับที่การประมวลผลการติดตาม
localOnly="true" หมายความว่าโปรแกรมดูการติดตาม (trace.axd) ใช้สำหรับโฮสต์เว็บเซิร์ฟเวอร์เท่านั้น
3. ปรับแต่งส่วนการกำหนดค่าไฟล์ Web.config
กระบวนการปรับแต่งส่วนการกำหนดค่าไฟล์ Web.config แบ่งออกเป็นสองขั้นตอน
วิธีหนึ่งคือการประกาศชื่อของส่วนการกำหนดค่าและชื่อของคลาส .NET Framework ที่จัดการข้อมูลการกำหนดค่าในส่วนนั้นระหว่างแท็ก <configSections> และ </configSections> ที่ด้านบนของไฟล์การกำหนดค่า
ประการที่สองคือทำการตั้งค่าจริงสำหรับส่วนที่ประกาศไว้หลังพื้นที่ <configSections>
ตัวอย่าง: สร้างส่วนเพื่อจัดเก็บสตริงการเชื่อมต่อฐานข้อมูล
<configuration>
<configSections>
<ชื่อส่วน = "appSettings" type = "System.Configuration.NameValueFileSectionHandler, ระบบ, เวอร์ชัน = 1.0.3300.0, วัฒนธรรม =เป็นกลาง, PublicKeyToken = b77a5c561934e089"/>
</configSections>
<การตั้งค่าแอป>
<เพิ่มคีย์ = "scon" value = "server=a;database=northwind;uid=sa;pwd=123"/>
</การตั้งค่าแอป>
<system.web>
-
</system.เว็บ>
</configuration>
4. เข้าถึงไฟล์ Web.config
คุณสามารถเข้าถึงไฟล์ Web.config ได้โดยใช้คอลเลกชันสตริงแบบคงที่ ConfigurationSettings.AppSettings ตัวอย่าง: รับสตริงการเชื่อมต่อที่สร้างขึ้นในตัวอย่างข้างต้น
Dim sconstr As String = ConfigurationSettings.AppSettings("SconStr")
Dim scon = SqlConnection ใหม่ (sconstr)