1

我在 DNN 中创建了一个模块,该模块有一个子文件夹,其中包含模块使用的多个文件,但我不希望公众访问这些文件。作为 DNN 的新手,我原本想简单地添加一个 Web.config 并在授权部分设置拒绝用户 =“*”。尽管 DNN 拦截了所有请求并忽略了 Web.config,但在我看来,因为此设置似乎没有效果。

用户目前可以通过猜测文件名并导航到 ( http://mysite.com/DesktopModules/mymodule/restricted_files/guessedfile.pdf ) 来访问这些文件。我怎样才能防止这种情况发生?

4

1 回答 1

2

DotNetNuke 允许您为文件系统中的文件夹提供不同的提供程序。如果您使用这些提供程序(而不是直接与文件系统交互),那么您可以确保 DNN 可以控制文件夹中文件的权限。

DNN 中内置了三个提供程序:标准、安全和数据库。如果您使用安全或数据库提供程序创建文件夹,则 DNN 将确保您无法仅通过猜测路径(通过附加.resources到 IIS 不会提供的文件名,或将其放入文件名)来访问该文件在数据库中)。然后,您可以为文件夹分配权限(通过“管理”菜单中的“文件管理器”页面)以指示谁可以访问这些文件(站点管理员将始终能够访问这些文件,除非您使用的是主机文件系统) .

但是,这些文件夹提供程序仅适用Portals于站点中的目录。建议您将内容文件存储在那里,而不是DesktopModules.

于 2013-06-04T13:01:34.067 回答