ShopPlatform.Web 1.0.0.0
농산물, 소프트웨어 라이선스와 개발 용역을 직접 판매하는 CodeMaru 직영 쇼핑몰입니다.
로딩중...
검색중...
일치하는것 없음
TenantMiddleware.cs
이 파일의 문서화 페이지로 가기
2
4
13public sealed class TenantMiddleware
14{
23 private static readonly HashSet<string> _reserved = new(StringComparer.OrdinalIgnoreCase)
24 {
25 "admin", "healthz", "_blazor", "_framework", "_content", "favicon.ico", "robots.txt", "sitemap.xml"
26 };
27
36 private readonly RequestDelegate _next;
37
54 public TenantMiddleware(RequestDelegate next) => _next = next;
55
96 public async Task InvokeAsync(HttpContext ctx, TenantContext tenantCtx, IShopTenantStore store)
97 {
98 var path = ctx.Request.Path.Value ?? "/";
99 var segments = path.TrimStart('/').Split('/', 2);
100 var slug = segments[0];
101
102 if (!string.IsNullOrEmpty(slug) && !_reserved.Contains(slug))
103 {
104 var config = await store.GetAsync(slug);
105 if (config != null)
106 tenantCtx.Config = config;
107 }
108
109 await _next(ctx);
110 }
111}
async Task InvokeAsync(HttpContext ctx, TenantContext tenantCtx, IShopTenantStore store)
static readonly HashSet< string > _reserved
Task< ShopConfig?> GetAsync(string slug)