2015-04-02 126 views
0

我有幾個文件夾要從web.config中的內容,Javascript和腳本等塊中排除。請幫我實現這一點。允許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 2015-04-03 03:04:01

+0

是的..401未經授權 – Krish 2015-04-03 16:48:03

回答

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> 

你必須確保你沒有攔截的請求,併發出401未授權任何一個HTTP模塊的上述資源

以下是我的路由配置,以便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

我不認爲你可以做到這一點。

從微軟的一切經驗來看,Deny總是打敗Allow,所以如果你拒絕在根級別訪問,那麼你將無法授予訪問權限,除非你可以刪除從根級繼承的權限。我不認爲有辦法刪除這些繼承權限。我試圖放下,但這是無效的。

所以你必須設置拒絕所有用戶在每個需要訪問被拒絕的文件夾上,你不能讓它默認爲拒絕。另外,如果內容被所有用戶拒絕,也許你不應該在IIS站點上擁有大量內容?