【问题标题】:DotNetNuke Secure Module FolderDotNetNuke 安全模块文件夹
【发布时间】:2013-06-04 08:24:51
【问题描述】:

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

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

【问题讨论】:

    标签: permissions directory dotnetnuke


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的帮助。这些文件将随模块分发。按照您的建议,我将如何指导安装程序将这些文件放入 Portals 下的安全文件系统文件夹中?
    • 你的模块的业务控制器类可以实现IPortable在安装后运行代码。您还可以在清单中通过 <basePath> 元素指示文件应最终位于特定文件夹中,例如Portals/_default/MyFiles(见the wiki page on the File component of the manifest
    猜你喜欢
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多