我想从提供的路径创建文件列表。我需要从其他服务器上而不是我的 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 上的服务器时,它会要求我提供凭据,而当我在浏览器上提供凭据时,什么也没有发生。
在映射驱动器的服务器上,我创建了一个应用程序池,并在应用程序池的身份字段中选择了有权访问映射驱动器的用户,并将“加载用户配置文件”设置为 true。
然后我将该应用程序池分配给我的应用程序虚拟目录。
现在这段代码可以正常工作了。之前,应用程序池上的身份用户无法访问其他网络路径/映射驱动器。
因此,我提供了有权访问该路径的用户,即在映射文件夹的“安全”选项卡中。现在它在该用户下运行,因此不需要凭据。