我正在尝试限制用户(管理员除外)访问我的文件夹图片。例如,路径是:
~/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文件
答案 0 :(得分:3)
这是因为静态内容(如图像)由IIS直接提供,不涉及MVC管道。 要更改它,您可以执行以下操作:
添加
<modules runAllManagedModulesForAllRequests="true">
到网站的web.config的<system.webServer>
部分。它将为每个请求运行MVC管道,包括静态文件 - 如css,js和images。
然后你的配置将起作用(我的意思是你的第二种方法)。