【问题标题】:How To Rectrict Access to the Files in File System(ASP.NET Web application directory)?如何限制对文件系统(ASP.NET Web 应用程序目录)中文件的访问?
【发布时间】:2012-10-18 14:01:56
【问题描述】:

我正在开发一个 ASP.Net Web 应用程序。在那个用户可以上传文件,他们可以在需要时查看相同的文件。这些上传文件保存在文件系统中(路径:- WebApp/Uploads/Docs)。仅当用户是文档的所有者或上传时,才会将其提供给用户。

我的问题是:带有此 WebApp/Uploads/Docs/Doc1.doc 的文件
路径只能由该文档的上传者/所有者访问。

必须限制其他应用程序用户访问此路径。

那么,我可以在将此文件提供给其他用户之前进行检查(用户是否为所有者)吗?

【问题讨论】:

    标签: asp.net .net file-io web-applications file-permissions


    【解决方案1】:

    我会建议您将文档放在网站目录之外,因为这会使它们暴露在未经授权的下载中。

    至于您需要的检查,您可以为您的文档创建一个通用处理程序 (*.ashx),该处理程序将验证文档所有者并将内容仅提供给允许的用户。

    HTTP Handlers and HTTP Modules Overview

    【讨论】:

    • 我认为这对我来说是一个不错的选择。但是出现了一个小问题:使用此处理程序检查权限后。我们将控制发送到相同的文件路径或某个错误页面。当用户获取 rite 文件路径时,他们可能会尝试直接 rite 访问它。?我有礼貌吗?
    • 您不应该公开服务器的目录路径。用户将获得一个文件缓冲区,而不是文件本身的路径。
    【解决方案2】:

    您可以通过 Web.config 实现此目的 在 web.config 下添加元素..

    在元素中,添加配置元素和配置元素。使用 users 属性指定以逗号分隔的用户名列表。您可以使用问号 (?) 作为与任何用户名匹配的通配符。例如,以下代码拒绝除 user1 和 user2 之外的所有用户访问:

    <authorization>
        <allow users="user1, user2"/>
        <deny users=”?”/>
    </authorization>
    

    【讨论】:

    • 他们可能会上传大量文件,并且只有上传者才有权限。所以我认为这不是一个好的选择。
    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多