Asp.net mvc限制特定用户访问文件夹内容

时间:2016-02-13 16:36:33

标签: c# asp.net-mvc

我正在尝试限制用户(管理员除外)访问我的文件夹图片。例如,路径是:

~/content/images/coverBeg.jpg

如果用户导航到domain/content/images/coverBeg.jpg,他可以看到该文件。 我尝试了不同的东西,但没有一个对我有用。在web配置文件中,我添加了:

    <location path="~/content/images">
    <system.web>
      <authorization>
        <allow roles="Admin"/>
        <deny users ="*" />
      </authorization>
    </system.web>
  </location>

没有成功。之后我将一个web配置文件添加到images文件夹并添加了这些代码行:

<?xml version="1.0"?>
<configuration>

    <system.web>
      <authorization>
        <allow roles="Admin"/>
        <deny users ="*" />
      </authorization>
    </system.web>

</configuration>

这对我没有用。仍然每个人都可以访问coverBeg.jpg文件

1 个答案:

答案 0 :(得分:3)

这是因为静态内容(如图像)由IIS直接提供,不涉及MVC管道。 要更改它,您可以执行以下操作:

添加

<modules runAllManagedModulesForAllRequests="true">

到网站的web.config的<system.webServer>部分。它将为每个请求运行MVC管道,包括静态文件 - 如css,js和images。

然后你的配置将起作用(我的意思是你的第二种方法)。