Owin只提供某些文件夹中的文件

use*_*512 5 c# static-files owin katana owin-middleware

所以我正在玩Owin和Katana,我想在我的公共文件夹中提供静态文件.

我有一个带有样式表和脚本文件夹的Content文件夹.

我的创业公司:

    public void Configuration(IAppBuilder app)
    {
 #if DEBUG
        //when things go south
        app.UseErrorPage();
  #endif

        // Remap '/' to '.\public\'.
        // Turns on static files and public files.
        app.UseFileServer(new FileServerOptions()
        {
            RequestPath = PathString.Empty,
            FileSystem = new PhysicalFileSystem(@".\public"),
        });

    }
Run Code Online (Sandbox Code Playgroud)

因此,如果我浏览到localhost:8861 /我去我公共文件夹中的index.html文件.没关系.但我也可以浏览我想要阻止的localhost:8861/Content/style.css.应该可以在公用文件夹中访问用户需要的所有内容.其余的都应该被阻止.

我怎样才能做到这一点?

ntl*_*ntl 1

文件服务器的配置正确,不允许访问其他文件夹。我已经在测试 OWIN 自托管项目中检查过它,它按预期工作,只能访问公共文件夹。我假设您使用 IIS 来托管您的 OWIN 应用程序(因此您的应用程序不是自托管的)。如果是这样,IIS 静态文件处理程序允许访问静态文件和目录(以及您的内容文件夹)。因此,您可以搜索如何在 IIS 中禁用对静态文件的访问(可以在 web.config 中完成)或如何限制对其中某些静态文件的访问。

您可以从网站配置中删除 StaticFile Handler,但您应该小心操作,因为从此时起 IIS 将不再提供静态文件。

<configuration>
    <system.webServer>
        <handlers>
           <remove name="StaticFile" />
        </handlers>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)