当我在VS2010中运行应用程序时,它使用以下代码正确地将文件下载到C:\Users\{UserName}\Downloads
文件夹。
string userDownloadFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads\\";
但是当我在IIS中托管应用程序时,它会转到C:\Users\.NET 4.0 App Pool\Downloads\
是的,应用程序池位于.NET 4.0 App Pool中。
如何通过在IIS中托管应用程序来获取登录用户的下载文件夹?
答案 0 :(得分:1)
ASP.NET在服务器上运行,您在代码隐藏中执行的任何操作都指向服务器。当您在本地测试它时,您的计算机充当服务器,这就是您能够将文件下载到正确位置的原因。
您无法告诉客户端下载文件的位置。出于安全目的,故意限制访问客户端的文件系统。如果网站能够深入了解您的文件系统并选择下载文件的位置,您能想象安全风险吗?