有没有办法使用owin保护静态文件?

时间:2016-02-04 14:29:04

标签: c# asp.net asp.net-mvc owin

在实施Owin并使用cookie和不记名令牌保护asp.net mvc网站的所有控制器和webapi后,我遇到了问题。所有静态文件,如javascripts,图像和一些html文件都是不安全的,可以在未经授权的情况下下载。

到目前为止,我已尝试实现staticfiles(使用Microsoft.Owin.StaticFiles)并为请求路径设置静态文件,但没有任何成功。比如这个?

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

我尝试过,使用像katana文档中提到的web.config设置,但从这一点开始,让我们说roleX应该可以访问imagesX和roleY到imageY吗?文档中没有提及任何内容,甚至没有提及如何控制文件。

for(int i = 0; i < 26; i++){
...
    //Possible device path
    TCHAR drivePath[3] = {_T('A'+i), _T(':'), _T('\\')};
...
}

所以问题是如何使用owin和授权cookie保护静态文件。 我是否必须编写一个自己的中间件,检查每个请求是否是一个静态文件,或者nuget上是否有任何推荐的包来解决这个问题?

1 个答案:

答案 0 :(得分:1)

OWIN这样做的方法是使用一些中间件。新的asp.net核心不支持web.config和模块。只需确保在静态文件中间件之前插入auth中间件。这实际上取决于您选择的身份验证和授权框架,但您可以在此处查看示例:https://coding.abel.nu/series/owin-authentication/