当前位置:  开发笔记 > 编程语言 > 正文

在MVC6中如何阻止直接访问wwwroot中的文件夹?

如何解决《在MVC6中如何阻止直接访问wwwroot中的文件夹?》经验,为你挑选了1个好方法。

我们正在开发一个最新的MVC框架中的应用程序,到目前为止一切都很棒.在我们的应用程序中,我们决定在wwwroot/app下的项目中嵌入一个角度应用程序.我创建了一个app控制器并查看和禁止访问该应用程序,除非用户获得授权.当未经授权的用户尝试访问localhost/app时,这很有效 - 它将它们踢回C#应用程序登录页面.

我想更进一步,并禁止访问该文件夹中的直接文件,例如localhost/app/scripts/controllers/name.js或部分html文件/app/partials/name-partial.html.在过去,我将进入web.config并添加以下代码,但我没有找到最新框架的等效项.理想情况下,如果可能,我希望这是startup.cs或appsettings.json中的条目

  
    
      
        
        
      
    
  

David L.. 5

经过额外的研究,似乎最简单的方法就是在配置UseStaticFiles时实际使用OnPrepareResponse StaticFileOption.

以下内容将放在Startup.cs中:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
    ILoggerFactory loggerFactory)
{
    app.UseStaticFiles(new StaticFileOptions()
    {
        OnPrepareResponse = s =>
        {
            if (s.Context.Request.Path.StartsWithSegments(new PathString("/app")) && 
               !s.Context.User.Identity.IsAuthenticated)
            {
                s.Context.Response.StatusCode = 401;
                s.Context.Response.Body = Stream.Null;
                s.Context.Response.ContentLength = 0;
            }
        }
    });
}

上述代码仅在执行静态文件WITHIN wwwroot时运行,特别是在以"/ app"段开头的任何路径中运行.如果未经过身份验证,则会重写响应,以便不会将正常内容以及相应的状态代码传递给客户端.



1> David L..:

经过额外的研究,似乎最简单的方法就是在配置UseStaticFiles时实际使用OnPrepareResponse StaticFileOption.

以下内容将放在Startup.cs中:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
    ILoggerFactory loggerFactory)
{
    app.UseStaticFiles(new StaticFileOptions()
    {
        OnPrepareResponse = s =>
        {
            if (s.Context.Request.Path.StartsWithSegments(new PathString("/app")) && 
               !s.Context.User.Identity.IsAuthenticated)
            {
                s.Context.Response.StatusCode = 401;
                s.Context.Response.Body = Stream.Null;
                s.Context.Response.ContentLength = 0;
            }
        }
    });
}

上述代码仅在执行静态文件WITHIN wwwroot时运行,特别是在以"/ app"段开头的任何路径中运行.如果未经过身份验证,则会重写响应,以便不会将正常内容以及相应的状态代码传递给客户端.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有