2015-04-02 2 views
0

У меня есть несколько папок, которые должны быть исключены из блокировки, такие как Контент, Javascript и скрипты в web.config. Пожалуйста, помогите мне достичь этого.Разрешить IIS 7.5 обслуживать статические файлы через конвейер ASP.NET

Вот конфиг:

<location path="TechDocs"> 
<system.web> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
</system.web> 
</location> 
<location path="Scripts"> 
<system.web> 
    <authentication mode="None" /> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 
<location path="Content"> 
<system.web> 
    <authentication mode="None" /> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 
</location> 
<location path="Javascript"> 
<system.web> 
    <authentication mode="None" /> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 
</location> 
+0

Вы сейчас получаете 401 для этих – Saravanan

+0

Да..401 Несанкционированный – Krish

ответ

0

Это то, что мы используем

<location path="Scripts"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="Css"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

Вы должны убедиться, что вы не имеете HttpModule, который перехватывает запросы и рассылает 401 Несанкционированное для любого из вышеуказанных ресурсов

Ниже приведена моя конфигурация маршрутизации, так что MVC случайно не направляет запросы на MVC, к которым вы можете применить либо

  routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" }); 
      routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(ico|css|js|gif|jpg|woff|eot|svg|eot|ttf|otf)(/.*)?" }); 

      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{resource}.wdgt/{*pathInfo}"); 
      routes.IgnoreRoute("ChartImg.axd/{*pathInfo}"); 
      routes.Ignore("{*pathInfo}", new { pathInfo = @"^.*(ChartImg.axd)$" }); 
      routes.IgnoreRoute("{resource}.svc"); 
0

Я не думаю, что вы можете это сделать.

Общее эмпирическое правило от Microsoft заключается в том, что Deny всегда превосходит Allow, поэтому, если вы отказываетесь от доступа на корневом уровне, то вы не сможете предоставить доступ на более низком уровне, если только вы не может удалить разрешения, унаследованные от корневого уровня. Я не думаю, что есть способ удалить эти унаследованные разрешения. Я пытался сдавать, но это недействительно.

Таким образом, вы должны установить запрет на всех пользователей в каждой папке, которая должна быть отключена, вы не можете отказаться от нее по умолчанию. Кроме того, возможно, вам не нужно иметь тонны контента на сайте IIS, если этому контенту отказано всем пользователям?

Смежные вопросы