TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #607 255
⚡️ ترتیب Middleware در ASP.NET Core و نکات مهم

کش کردن و فشرده‌سازی فایل‌های استاتیک 📦💨

برای اینکه فایل‌های استاتیک Cacheable و Compressed شوند، ترتیب زیر پیشنهاد می‌شود:
app.UseResponseCaching();
app.UseResponseCompression();
app.UseStaticFiles();

ءProgram.cs: Middlewareهای رایج در سناریوهای مختلف

1️⃣ مدیریت Exception/Error

🔸️Development:
• UseDeveloperExceptionPage() → نمایش خطاهای runtime اپلیکیشن

• UseDatabaseErrorPage() → نمایش خطاهای database

🔹️Production:
• UseExceptionHandler() → گرفتن خطاهای ایجاد شده در middlewareهای بعدی

• UseHsts() → اضافه کردن هدر Strict-Transport-Security

• UseHttpsRedirection() → ریدایرکت HTTP به HTTPS

2️⃣ فایل‌های استاتیک و Policyها

• UseStaticFiles() → پاسخ به درخواست‌های فایل‌های استاتیک و کوتاه کردن pipeline

⚠️ توجه: هیچ بررسی authorization انجام نمی‌دهد. تمام فایل‌ها، از جمله wwwroot، عمومی هستند.

• UseCookiePolicy() → رعایت GDPR

3️⃣ Routing و Security

• UseRouting() → مسیردهی درخواست‌ها
• UseAuthentication() → بررسی هویت کاربر
• UseAuthorization() → اجازه دسترسی به منابع امن

⚠️توجه: Authentication short-circuit نمی‌کند؛ فقط هویت را بررسی می‌کند. مجوز دسترسی بعد از انتخاب Controller یا Razor Page اعمال می‌شود.

4️⃣ Session و Endpoint

• UseSession() → مدیریت وضعیت session
اگر از session استفاده می‌کنید، حتماً بعد از Cookie Policy و قبل از MVC Middleware قرار دهید.

• MapRazorPages() → اضافه کردن Endpointهای Razor Pages به pipeline

مثال کد کامل Program.cs
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseSession();
app.MapRazorPages();


نکات کلیدی 📝

• ءUseExceptionHandler → اولین middleware است، پس همه Exceptionهای بعدی را می‌گیرد.

• ءStatic File Middleware → زود فراخوانی می‌شود تا درخواست‌ها را هندل کرده و pipeline را کوتاه کند.

• ءSecurity → فایل‌های استاتیک بدون بررسی authorization هستند. برای ایمن‌سازی، به Secure Static Files در ASP.NET Core
مراجعه کنید.

Authentication vs Authorization

• Authentication → بررسی هویت
• Authorization → بعد از انتخاب Controller/Razor Page اعمال می‌شود

ترتیب فشرده‌سازی فایل‌ها

اگر Static Files قبل از ()UseResponseCompression بیاید → فایل‌های استاتیک فشرده نمی‌شوند، اما پاسخ Razor Pages فشرده می‌شود:
app.UseStaticFiles();
app.UseRouting();
app.UseResponseCompression();
app.MapRazorPages();

🔖هشتگ‌ها:
#ASPNETCore #Middleware #Pipeline #DotNe #RequestPipeline #CSharp
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →