【问题标题】:Securing Kentico Media Library file from direct URL access保护 Kentico 媒体库文件免受直接 URL 访问
【发布时间】:2016-05-11 10:17:04
【问题描述】:

我正在尝试防止未经授权访问我在 Kentico v9.0 中的一些媒体库中的所有文件。我打算仅通过 Kentico 角色成员资格和全局管理员提供对某些库的访问权限。

我已按照此处发布的指南进行操作:Securing media libraries,它似乎工作正常:无论用户身份验证状态和角色成员身份如何,直接 URL 路径访问都会导致 401.2 - 未经授权 消息。而且我有一个正确设置的媒体库 Web 部件以提供永久 URL,它们也可以按我的预期工作。

但是,我还有另一个要求;这是提供一个 ~/googlesitemap.xml 文件。我遵循了此处发布的指南:Google Sitemaps,它指示我为 web.config 中的 system.webServer/modules 节点提供一个属性:

<modules runAllManagedModulesForAllRequests="true">
  ...
</modules>

但是,当我添加上述内容时,任何经过身份验证的用户只要输入完整的 URL,就可以访问我的媒体库文件。这违反了我基于角色成员资格访问媒体库的尝试;因为我不希望其他角色的用户能够访问这些文件。

我已尝试通过在 设置 > URL 和 SEO > URL 格式 > 排除的 URL 中将我的媒体文件夹根添加为排除的 URL,从重写引擎中排除所有媒体库文件 ...但这似乎没有帮助。

非常欢迎任何建议!

【问题讨论】:

    标签: authorization kentico


    【解决方案1】:

    据我所知,runAllManagedModulesForAllRequests 属性仅对不同的扩展名(不同于 .aspx)是强制性的。如果您使用的是 IIS 7 或更高版本,则可以在 web.config 中省略此属性(请参阅source)。

    注意:在 ASP.NET 网站中,之前必须将 runAllManagedModulesForAllRequests 的值设置为 true 才能支持路由。但是,使用 Service Pack 更新 IIS 7 后,在使用 ASP.NET 路由时,runAllManagedModulesForAllRequests 的值可以设置为 false 或省略。有关详细信息,请参阅 MSDN 网站上的 ASP.NET 路由。

    快速修复:不要将此属性添加到 web.config,您的媒体库(权限)应该可以按您的意愿工作。

    编辑:所以我想我已经为你找到了解决方案。似乎 runAllmanagedModulesForAllRequests 属性 kills 匿名身份验证设置,因此 Kentico 在成功身份验证后提供数据。我找到了解决方法,因此您可以禁止访问媒体库。尝试添加类似的内容:

    <location path="MySite/media/MyMediaLibrary">
        <system.web>
              <authorization>
                    <deny users="*"/>
              </authorization>
        </system.web>
    </location>
    

    进入你的 web.config 里面的 configuration 部分。

    【讨论】:

    • 但是就像我说的,我需要提供 ~/sitemap.xml,它没有 .aspx 扩展名。那么你认为这是一个选择一个或另一个的情况吗?
    • 我认为您不需要使用 runAllManagedModulesForAllRequests 属性来获得 .xml 扩展名。 (我想你使用的是 IIS7 或更高版本)。
    • 是的,但是如果“~/sitemap”页面实际上是在内容树中创建的,并且是一个常规文档,那么您将需要它。如果您试图从文件系统中获取实际的物理文件,那么您不需要它并且 IIS 可以处理它。
    • 你是对的,理查德——我的错。我们必须找到另一个解决方案;/
    • 太棒了!谢谢?
    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 2013-01-03
    • 1970-01-01
    • 2020-02-25
    • 2019-05-08
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多