我想在我的 HTTP 服务器 (IIS 7.5) 上创建一个文件下载链接,用于一次性安全下载。我不希望该文件公开,接收者必须进行身份验证。
当用户访问链接时:
https://www.mydomain.com/download/receiver/file.zip
我希望弹出身份验证提示,如果用户通过了身份验证,则下载应该开始。
我不想为每个文件/接收器创建一个 Windows 用户帐户,据我所知,这是基本身份验证工作所必需的。创建 IIS 用户是可以接受的。但我似乎找不到一种方法来为某个文件或文件夹、Web 应用程序,甚至一个全新的专用网站启用 IIS 管理器身份验证。
(由于多种原因,FTP 不是一种选择。)
答案1
这描述了一种执行您所要求的方法,尽管它需要手动编辑 web.config 并更改其安全权限:
http://blogs.msdn.com/b/carlosag/archive/2008/09/26/using-iis-manager-users-in-your-application.aspx
您还可以考虑http://www.helicontech.com/ape/它启用了 Apache .htpasswd 样式的身份验证,但它不是免费的。
您反对为此创建 Windows 帐户的原因是什么?也许有办法解决您的顾虑,因为这是一种无需在 IIS 中添加额外内容即可轻松实现所需目的的方法。
答案2
考虑一下是否可以使用一些长的“秘密”URL 来代替用户名和密码验证。 https://www.example.com/download/receiver/djd343dw3k6k3mnb3b5j6nn2b3/file.zip 您可以通过电子邮件或 WhatsApp 等方式将此 URL 发送给该人,其他人永远不会知道此 URL 的存在。这适用于任何 Web 服务器 (IIS/nginx/Apache) 和任何客户端浏览器。无需创建用户名。在访问此文件时检查或监视您的 Web 服务器日志文件,然后将其删除。希望这可以帮助其他搜索此问题的人,即使您的问题有些老旧。