เมธอด Configure อยู่ภายในคลاس Startup ของแอปพลิเคชัน ASP.NET Core
เมธอด Configure เป็นจุดที่คุณสามารถกำหนดค่า Application Request Pipeline สำหรับแอปพลิเคชันของคุณได้ โดยใช้อินสแตนซ์ IApplicationBuilder ที่จัดเตรียมโดยคอนเทนเนอร์ IoC มาตรฐาน
เมธอด Configure โดยค่าเริ่มต้นมีพารามิเตอร์ 3 ตัว ได้แก่ IApplicationBuilder, IWebHostEnvironment และ ILoggerFactory
ในขณะรันไทม์ เมธอด ConfigureServices จะถูกเรียกก่อนเมธอด Configure เพื่อลงทะเบียน Custom Service กับคอนเทนเนอร์ IoC ซึ่งสามารถใช้ในเมธอด Configure ได้
- IWebHostEnvironment: จัดเตรียมข้อมูลเกี่ยวกับสภาพแวดล้อมการโฮสต์เว็บที่แอปพลิเคชันกำลังรันอยู่
- IApplicationBuilder: กำหนดคลาสที่จัดเตรียมกลไกในการกำหนดค่า Request Pipeline ของแอปพลิเคชัน
ตัวอย่างเมธอด Configure() แบบสมัยใหม่ (ASP.NET Core 3.0+)
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
} else {
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints => {
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
ลำดับของ Middleware สำคัญ
ลำดับการเพิ่ม Middleware ใน Pipeline มีความสำคัญ:
UseExceptionHandler/UseDeveloperExceptionPage- จัดการข้อผิดพลาด (ควรอยู่บนสุด)UseHsts- HTTP Strict Transport SecurityUseHttpsRedirection- บังคับ HTTPSUseStaticFiles- เสิร์ฟไฟล์ StaticUseRouting- Routing MiddlewareUseAuthentication- Authentication (ถ้ามี)UseAuthorization- AuthorizationUseEndpoints- Endpoint Routing (จุดสิ้นสุด)
การใช้งาน IWebHostEnvironment
สามารถตรวจสอบ Environment ได้หลายแบบ:
if (env.IsDevelopment()) { ... }
if (env.IsStaging()) { ... }
if (env.IsProduction()) { ... }
if (env.IsEnvironment("Testing")) { ... }