【问题标题】:Password protect files on IIS without using NTFS file permission密码保护 IIS 上的文件而不使用 NTFS 文件权限
【发布时间】:2011-11-19 10:58:29
【问题描述】:

我们托管客户将登录并查看的在线报告。这些报告是从 SQL Server 数据库中提取必要数字的 ASP 页面。客户端的访问详细信息也由 SQL Server 中的表管理。

过去,我们有一个或多个 PDF 或其他文件,客户可能还想从在线报告中访问这些文件。这些只是简单地上传到 ASP 文件夹内的子文件夹中,并从相关的 ASP 页面链接到。

如果我想保护这些文件以确保尝试访问它们的用户已经登录 - 有没有办法做到这一点?我认为该文件必须存储在数据库中。其他人如何管理这个?

【问题讨论】:

    标签: iis asp-classic


    【解决方案1】:

    无需将 PDF 放入数据库。相反,将 PDF 存储在 Web 文件夹之外的位置。远离公共通道。在数据库中为每个带有 ID 号的 PDF 的位置创建记录。假设您已经有一个用户身份验证系统,请创建另一个表,将用户 ID 链接到他们有权访问的 pdf 的记录 ID。从那里创建一个页面来检查该访问表的凭据,打开 db 提供的文件位置并响应二进制写入它的内容是一件简单的事情。你可以在网上找到几个这样的例子。然而,经典的 ASP 有一个令人讨厌的习惯,即在传输文件时将整个文件存储在 ram 中,这会吃掉你不会相信的资源。如果可能的话,我建议使用 ASP.Net 脚本。代码也简单多了

    Server.TransferFile()
    

    【讨论】:

    • 它不是将文件存储在 RAM 中的 ASP Classic(您可以禁用响应缓冲并将其分块到客户端),但唯一可用于 ASP 以读取二进制文件的组件是 ADODB。溪流。不幸的是,这通常会将大部分(如果不是全部)文件带入内存。
    • 感谢斯宾塞 - 帮助很大
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 2014-12-16
    • 2012-04-25
    • 2019-05-06
    • 1970-01-01
    • 2018-05-15
    • 2011-01-09
    相关资源
    最近更新 更多