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.应该可以在公用文件夹中访问用户需要的所有内容.其余的都应该被阻止.
我怎样才能做到这一点?
文件服务器的配置正确,不允许访问其他文件夹。我已经在测试 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)