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

Ant*_*ton 8 asp.net asp.net-mvc authorization static-files owin

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

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

第一个问题是IIS完全跳过ASP.NET而只是提供文件.我认为通过将runAllManagedModulesForAllRequests设置为true可能有办法解决这个问题.但是我从哪里去?

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

我花了一整天的时间在这上面,我即将失去理智.

有人解决了这个问题吗?

Dav*_*ani 3

  1. IIS 正在提供静态文件服务,如果您想停止此操作,您可以删除默认的静态文件处理程序,然后每个请求都由 MVC/OWIN 处理。
  2. 比在控制器中进行静态文件处理和授权:侦听/映射静态文件所在的路由

要删除默认的静态文件处理程序,请将其添加到web.config文件中:

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