У меня есть куча файлов, хранящихся в каталоге.Эти файлы имеют ссылки, хранящиеся в базе данных, например
https://localhost:44325/Repositories/Aopdio/2019/05/QWNjb3VX0FNT1NUSElSRF9LTA==.pdf
Когда я вхожу в свое приложение, я могу получить доступ к файлам через приложение.Однако, когда я копирую эту ссылку и вставляю ее в другой браузер, файл все равно открывается.
Есть ли способ предотвратить это?Я бы хотел, чтобы контент обслуживался только из приложения.
Это мой запуск .cs
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(RepositoryManager.GetBasePath(Environment.GetEnvironmentVariable("APPONE_REPOSITORY"))),
RequestPath = RepositoryManager.GetRequestPath(Environment.GetEnvironmentVariable("APPONE_REPOSITORY"))
});
app.UseStaticFiles(
new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Resources")),
RequestPath = "/Resources"
}
);
Это промежуточное ПО, которое я пытался реализовать:
In Startup.cs
app.UseRequestMiddleware();
Промежуточное программное обеспечение
public class RequestMiddleware
{
private readonly RequestDelegate next;
public RequestMiddleware(RequestDelegate next)
{
this.next = next;
}
public async Task Invoke(HttpContext context, Func<Task> next)
{
var test = context;
}
}
Расширение, которое вызывает промежуточное программное обеспечение и вызывается в Startup.cs
public static class RequestMiddlewareExtension
{
public static IApplicationBuilder UseRequestMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<RequestMiddleware>();
}
}
}
Однако,Я получаю эту ошибку:
InvalidOperationException: Unable to resolve service for type 'System.Func`1[System.Threading.Tasks.Task]' while attempting to Invoke middleware 'App.ClassLibrary.Middleware.RequestMiddleware'.