我在DNN中创建了一个模块,该模块有一个子文件夹,其中包含模块使用的几个文件,但我不希望公众访问这些文件。作为DNN的新手,我原本以为只需添加一个Web.config并在授权部分设置deny users =“*”。它现在看起来虽然DNN拦截所有请求并忽略了Web.config,因为此设置似乎没有任何效果。
用户当前可以通过猜测文件名并导航到(http://mysite.com/DesktopModules/mymodule/restricted_files/guessedfile.pdf)来访问这些文件。我怎样才能防止这种情况发生?
答案 0 :(得分:2)
DotNetNuke允许您在文件系统中拥有different providers for folders。如果您使用这些提供程序(而不是直接与文件系统交互),那么您可以确保DNN控制文件夹中文件的权限。
内置于DNN的是三个提供商,标准,安全和数据库。如果您使用安全或数据库提供程序创建文件夹,则DNN将确保您无法通过猜测路径来访问该文件(通过将.resources
附加到文件名,IIS将不会提供,或将其放入数据库中)。然后,您可以为文件夹分配权限(通过“管理”菜单中的“文件管理器”页面),以指示谁可以访问这些文件(站点管理员将始终能够访问这些文件,除非您使用的是主机文件系统)
但是,这些文件夹提供程序仅适用于站点中的Portals
目录。建议您将内容文件存储在那里,而不是DesktopModules
。