Обнаружение stati c запроса файла от. NET core middleware - PullRequest
0 голосов
/ 27 января 2020

Я пишу промежуточное программное обеспечение для анализа субдомена заданного URL-адреса запроса для определения темы веб-сайта. Я хочу игнорировать запросы файла * stati c, чтобы уменьшить количество ненужных поисков в базе данных, и мне интересно, есть ли более чистый способ сделать это.

Это то, что я пробовал до сих пор:

var staticFileExtensions = new List<string> { ".css", ".js", ".png", ".ico" };
if (staticFileExtensions.Any(x => httpContext.Request.Path.Value.EndsWith(x)))
{
    await _next(httpContext);
}
else
{
    var hostParts = httpContext.Request.Host.Host.Split('.').ToList();
    if (httpContext.Request.Path.StartsWithSegments(new PathString("/healthcheck"))
    || (hostParts.Count == 6 && _whitelistedDomains.Contains(hostParts[0])))
    {
        httpContext.Items.Add("account", hostParts[0]);
        await _next(httpContext);
    }
    else
    {
        httpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
    }
}

Вот где я добавил его в Startup.cs:

app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseDomainWhitelisting();

Такое ощущение, что должен быть более понятный способ определить, какие запросы игнорировать, или, может быть, я ' я что-то упустил?

...