ASP.NET MVC w/Owin中静态文件的授权
我需要保护静态HTML文件的整个文件夹。其目的是,用户无法访问这些文件,除非它们经过身份验证并具有必要的角色 我们已经使用OWIN设置了基于cookie的身份验证,但是无论我做什么尝试,我似乎都无法找出需要对文件夹进行身份验证的更改的正确组合 第一个问题是IIS完全跳过ASP.NET,只提供文件服务。我认为有一种方法可以解决这个问题,将runAllManagedModulesForAllRequests设置为true。但我该怎么办呢 我尝试在Web.config中填充元素以要求适当的角色,但这只会导致每个请求都被拒绝(可能是因为它没有检查适当的cookie或其他东西) 我一整天都在这上面,我快要疯了 有人解决了这个问题吗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中填充元素以要求适当的角色,但这只
<configuration>
<system.webServer>
<handlers>
<remove name="StaticFile" />
</handlers>
</system.webServer>
</configuration>
创建一个实现IHttpHandler
的类,并将安全性放在那里。在这种情况下,我会把我的角色检查之类的东西放到RouteHandler中?我不确定,但那似乎不是适合这种事情的地方。然后从标准控制器方法提供文件。我可能就是这么做的。你可以用你想要的任何安全性预先加载它,MVC神会满意的。正如@RobertHarvey所说的,使用控制器作为静态内容的看门人是没有问题的。这是我之前给出的一个答案,详细说明了我们如何对静态文件执行授权/身份验证-我如何让它与angular一起工作?我的web应用程序是用Angular 1.6和Typescript编写的。如果我删除StaticFile模块,index.html将无法提供,它会把一切都搞糟。我只需要将附件文件夹和服务器静态/媒体文件的访问权限限制为仅授权用户。有什么想法吗?看看,这可能对你有帮助你是个好朋友!非常感谢,让我看看并试一试。非常感谢。