【问题标题】:Windows Folder Security when sharing through a website通过网站共享时的 Windows 文件夹安全性
【发布时间】:2009-08-05 14:28:00
【问题描述】:

我正在开发一个提供文件(电子商务可下载内容)的应用程序。内容存储在服务器上的 Windows 文件夹共享中,然后应用程序在用户请求时提供对该内容的访问。本质上是有一个 DownloadFile.aspx?fileId=XXXX

无论如何,我在获取文件夹的安全权限时遇到了问题。每当我导航到该页面时,我都会从 IIS 获得登录/密码提示,询问本地计算机上的权限。我需要任何互联网用户都能够访问文件(应用程序处理谁应该能够访问这些文件的安全性)

我尝试将 Read 添加到 EVERYONE 以及将其添加到 ASPNET 用户。没运气。我仍然得到提示。

有什么建议吗?

编辑:增加一点清晰度。现在获取安全弹出窗口的 ASPX 文件仅在网络共享的 UNC 上调用 File.Exists。这个特定的脚本没有提供文件供下载(还),它仍然失败。

附言我知道这可能不是提供这些文件的最佳方式。我是一名承包商,为正在将他们的网站迁移到另一个网络主机的客户工作。我们需要让它工作,然后才能有希望重写它。最小的影响是关键。

【问题讨论】:

  • 我发现的其他问题与任何发现此问题的人都无关。原始应用程序在 web.config 中的脚本上有自定义安全性,但 web.config 是错误的。它具有表单身份验证,但 xml 不正确(需要模式 =“表单”)一旦添加它就会相应地重定向,并且具有安全设置权限的用户可以下载文件。

标签: .net windows security filesystems


【解决方案1】:

如果文件在不同的共享上,首先你需要使用 Response.WriteFile() 方法来实际发送文件。

然后从权限的角度来看,您只需要让 ASPNET(或 Win 2003/Vista/Win 2008 上的 NETWORK SERVICE)具有根据需要读取/写入该文件夹的权限。

【讨论】:

  • 打算将此标记为答案。我使用的是 ASPNET,我需要网络服务。还有其他问题,但这最有帮助。
【解决方案2】:

谨慎使用“所有人”组。检查 IIS 中虚拟目录的安全权限。只能是“匿名”。尝试this,然后按照找到here 的设置来保护服务器。

【讨论】:

    【解决方案3】:

    如果您直接链接到内容,则不会涉及 ASPNET 用户。该用户仅用于在 IIS 中执行 ASPx 文件。要允许网络上的用户直接访问该文件,请确保帐户“IUSR_computerName 有权访问该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2022-06-26
      • 1970-01-01
      相关资源
      最近更新 更多