如何从 ASP.NET 网页读取本地映射驱动器上的文件

问题描述 投票:0回答:1

我想从提供的路径创建文件列表。我需要从其他服务器上而不是我的 IIS 服务器上的给定文件夹中读取所有文件。

我将驱动器映射到 IIS 服务器上以读取它,但在加载页面时它要求我提供凭据,而我不希望这样做。我已将凭据保存在 IIS 上上传页面的位置并映射驱动器。

string xrayPath = @"\\172.18.0.23\or\CARM\" + xrayPath;
List<FileInformation> directories = new List<FileInformation>();
List<FileInformation> lstFiles = new List<FileInformation>();
List<FileInformation> lstAllFiles = new List<FileInformation>();

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(xrayPath);

int fileId = 0;
PoplateFiles(ref lstFiles, ref directories, dir, 0, ref fileId);

foreach (var file in directories)
{
    file.isDirectory = true;
    lstAllFiles.Add(file);
}

foreach (var file in lstFiles)
{
    file.isDirectory = false;
    lstAllFiles.Add(file);
}

当我测试它时,它在 Visual Studio 中工作,但是当我将其部署到 IIS 上的服务器时,它会要求我提供凭据,而当我在浏览器上提供凭据时,什么也没有发生。

c# asp.net file networking drive
1个回答
0
投票

在映射驱动器的服务器上,我创建了一个应用程序池,并在应用程序池的身份字段中选择了有权访问映射驱动器的用户,并将“加载用户配置文件”设置为 true。

然后我将该应用程序池分配给我的应用程序虚拟目录。

现在这段代码可以正常工作了。之前,应用程序池上的身份用户无法访问其他网络路径/映射驱动器。

因此,我提供了有权访问该路径的用户,即在映射文件夹的“安全”选项卡中。现在它在该用户下运行,因此不需要凭据。

© www.soinside.com 2019 - 2024. All rights reserved.