Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC w/Owin中静态文件的授权_Asp.net_Asp.net Mvc_Authorization_Owin_Static Files - Fatal编程技术网

ASP.NET MVC w/Owin中静态文件的授权

ASP.NET MVC w/Owin中静态文件的授权,asp.net,asp.net-mvc,authorization,owin,static-files,Asp.net,Asp.net Mvc,Authorization,Owin,Static Files,我需要保护静态HTML文件的整个文件夹。其目的是,用户无法访问这些文件,除非它们经过身份验证并具有必要的角色 我们已经使用OWIN设置了基于cookie的身份验证,但是无论我做什么尝试,我似乎都无法找出需要对文件夹进行身份验证的更改的正确组合 第一个问题是IIS完全跳过ASP.NET,只提供文件服务。我认为有一种方法可以解决这个问题,将runAllManagedModulesForAllRequests设置为true。但我该怎么办呢 我尝试在Web.config中填充元素以要求适当的角色,但这只

我需要保护静态HTML文件的整个文件夹。其目的是,用户无法访问这些文件,除非它们经过身份验证并具有必要的角色

我们已经使用OWIN设置了基于cookie的身份验证,但是无论我做什么尝试,我似乎都无法找出需要对文件夹进行身份验证的更改的正确组合

第一个问题是IIS完全跳过ASP.NET,只提供文件服务。我认为有一种方法可以解决这个问题,将runAllManagedModulesForAllRequests设置为true。但我该怎么办呢

我尝试在Web.config中填充元素以要求适当的角色,但这只会导致每个请求都被拒绝(可能是因为它没有检查适当的cookie或其他东西)

我一整天都在这上面,我快要疯了

有人解决了这个问题吗

  • IIS正在提供静态文件,如果您想停止此操作,您可以删除默认的静态文件处理程序,然后删除每个请求 由MVC/OWIN提供服务
  • 然后在控制器中进行静态文件处理和授权 :侦听/映射静态文件所在的路径
  • 要删除默认静态文件处理程序,请将其添加到web.config文件:

    <configuration>
        <system.webServer>
            <handlers>
               <remove name="StaticFile" />
            </handlers>
        </system.webServer>
    </configuration>
    
    
    
    创建一个实现
    IHttpHandler
    的类,并将安全性放在那里。在这种情况下,我会把我的角色检查之类的东西放到RouteHandler中?我不确定,但那似乎不是适合这种事情的地方。然后从标准控制器方法提供文件。我可能就是这么做的。你可以用你想要的任何安全性预先加载它,MVC神会满意的。正如@RobertHarvey所说的,使用控制器作为静态内容的看门人是没有问题的。这是我之前给出的一个答案,详细说明了我们如何对静态文件执行授权/身份验证-我如何让它与angular一起工作?我的web应用程序是用Angular 1.6和Typescript编写的。如果我删除StaticFile模块,index.html将无法提供,它会把一切都搞糟。我只需要将附件文件夹和服务器静态/媒体文件的访问权限限制为仅授权用户。有什么想法吗?看看,这可能对你有帮助你是个好朋友!非常感谢,让我看看并试一试。非常感谢。