如何授予/限制每个客户对“图像”子文件夹的访问?

时间:2019-04-15 01:25:06

标签: asp.net-core asp.net-core-2.0

我的wwwroot / images内部具有以下结构:

wwwroot

-------图像

-------------客户

---------------------------每个客户都有自己的文件夹名称。

每个文件夹都有一个只有客户才能访问的图像。

问题是:如果某些用户键入其他用户的图像的地址,它将打开。

我正在尝试使用数据库中的Company表来限制对每个文件夹的访问。

我可以使用Web配置上的位置路径在MVC 5上做到这一点。

但是如何在.NET Core上的appsettings.json中做到这一点?

谢谢大家!

OBS:如果您有其他解决方法,欢迎您:D

1 个答案:

答案 0 :(得分:1)

静态文件中间件不提供授权检查。它提供的任何文件,包括wwwroot下的文件,都可以公开访问。要基于授权提供文件,您可以参考Static file authorization

对于另一个选项,您可以考虑实现自定义中间件,例如

Dim wb2 As Workbook

Dim fdl As FileDialog
Dim FileChosen As Integer

Set fdl = Application.FileDialog(msoFileDialogFilePicker)

fdl.Title = "Please Select the XXX file"
'Set the InitialFile Path
fdl.InitialFileName = "D:\"
'Set the Folder View
fdl.InitialView = msoFileDialogViewSmallIcons
'Set the filter
fdl.Filters.Clear
fdl.Filters.Add "XLSX", "*.XLSX"
'Optional if you know the file type is constant, else no need of filter
FileChosen = fdl.Show

If FileChosen <> -1 Then
'Not choosen anything / Clicked on CANCEL
MsgBox "No file choosen"

Else
'fdl.SelectedItems(1) display name and complete path of file chosen
 Set wb2 = Workbooks.Open(fdl.SelectedItems(1))
End If