Ben*_*rth 1 iis .net-core asp.net-core
我正在构建一个 Dotnet Core Web 应用程序,它需要允许经过 Windows 身份验证的用户浏览连接的虚拟目录并查看和选择托管在那里的文件。
Dotnet Core 应用程序是否可以访问虚拟目录?除此之外,有没有办法让普通的 Dotnet 应用程序做到这一点?
这样做是可能的。我已经在这件事上工作了两个星期,到处寻找答案。这是我如何做到的。
您将需要在 Startup.cs 的 Configure 方法中添加配置 app.UseFileServer()
app.UseFileServer(new FileServerOptions
{
PhysicalFileProvider("\\\\virtualPath\\photos\\wait\\"),
RequestPath = new PathString("/AROULETTE"),
EnableDirectoryBrowsing = true
});
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?它的设置方式是,您将输入http://localhost:5000/AROULETTE ,它将在浏览器中打开 PhysicalFileProvider 中提供的虚拟路径。当然,这并不是我真正想要的。
我需要使用 C# 创建一个目录并将文件复制到虚拟目录中。一旦我设置了 FileServer,我就尝试了这样的方法,但它不起作用。
if(!Directory.Exists("/AROULETTE/20170814"))
{
Directory.Create("/AROULETTE/20170814")
}
Run Code Online (Sandbox Code Playgroud)
当然,这也不是
var path = Path.Combine("http://localhost:5000/", "AROULETTE/20170814")
if(!Directory.Exists(path)
{
Directory.Create(path)
}
Run Code Online (Sandbox Code Playgroud)
相反,您只需使用文件夹的实际虚拟路径。
if(!Directory.Exists("\\\\virtualPath\\photos\\wait\\20170814"))
{
Directory.Create("\\\\virtualPath\\photos\\wait\\20170814")
}
Run Code Online (Sandbox Code Playgroud)
因此 UseFileServer 用于在应用程序和虚拟文件夹之间创建“桥梁”,就像使用 ASP.Net 4.5 创建虚拟目录一样
希望这可以帮助一些人,因为关于这个主题的大多数答案都不清楚。
| 归档时间: |
|
| 查看次数: |
2918 次 |
| 最近记录: |