问题描述
我将跟着asp.net上有关提供静态文件的文档: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1
在我的服务器端应用程序中;当用户上传文件时,文件对他和任何通过完全限定名称知道资源的人都是私有的。该文件可以通过邮件“共享”,这意味着电子邮件将向他和他的“追随者”发送。在电子邮件中,他上传的图像可以使用
<img src="Basepath/staticfiles/SomeGuid_filename.bmp">
。
现在,电子邮件客户端可以直接显示图像而无需授权。
这正是我想要的。由于im在资源上使用guid,因此很难通过猜测来找到静态资源,因此im假定这样做将提供与API上的访问令牌相同的保护。这个对吗?目录浏览默认情况下处于关闭状态。
UseStaticFiles内容位于app.UseAuthentication(); app.UseAuthorization();的前面这样会将静态文件存储到知道静态文件名称的任何人。
app.UseStaticFiles();
//file system
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(resourceSettings.ResourceDirectory),RequestPath = new PathString(resourceSettings.ResourceStaticFilesUrl)
});
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
endpoints.MapControllerRoute(
name: "default",pattern: "{controller}/{action}/{id?}");
endpoints.MapHub<NotificationHub>("/notificationhub");
});
所以主要问题是:在静态资源上使用GUID是否足够的保护,或者与API上的访问令牌相同?关闭目录浏览后,是否有人可以查询静态文件列表?我是“正确地”执行此操作还是有其他选择?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)