2011-04-12 54 views
2

在ASP.Net 4和MVC2應用程序中,我們有一個奇怪的配置錯誤。自定義錯誤設置在web.config中被拒絕的位置被忽略

的web.config文件看起來是這樣的:

<configuration> 
    <location path="blockedpath"> 
     <system.web> 
      <authorization> 
       <deny users="*" /> 
      </authorization> 
     </system.web> 
    </location> 
    <system.web> 
     <customErrors mode="On" defaultRedirect="~/Error.aspx" /> 
    </system.web> 
</configuration> 

參觀受阻的位置是否正確否認,但給出了IIS,我們不希望有一個詳細的錯誤信息。

爲什麼不提供配置的自定義錯誤?

當頁面訪問被配置拒絕時,我們可以控制它提供的頁面嗎?

+0

如果我理解的很好,你要求loginUrl =「PageOnNotLogedin.aspx」,用戶在未登錄時必須進入的頁面?正確嗎? – Aristos 2011-04-12 13:25:10

+0

我們沒有使用web.config來控制它,但我們基本上是相似的。但是,該頁面是401的結果(即,如果您提供了正確的用戶,則可以登錄),而不是403(您的用戶無法看到此內容)。 403禁止的錯誤不應該重定向到登錄表單。 – Keith 2011-04-12 15:35:56

回答

0

如果這是IIS7,那麼它看起來像IIS劫持響應。試試這個:

<configuration> 
    <system.webServer> 
    <httpErrors existingResponse="PassThrough" /> 
    </system.webServer> 
</configuration> 
+0

乾杯,我試過這個,但它似乎沒有在我的情況下有所作爲。 – Keith 2011-04-14 13:49:10

+0

@keith - 有多奇怪。任何機會的錯誤的截圖? – Kev 2011-04-14 14:19:36

+0

你可以在新的.Net 4 IIS7應用程序中看到它,只需將拒絕頁面添加到web.config並訪問它即可。 – Keith 2011-04-15 12:58:10

1

根據this博客文章,IIS7是想幫一下忙,喜歡竊取您的自定義錯誤頁,並有自己的替換它們。

打開錯誤頁面功能在IIS中,並在右側菜單上單擊編輯功能設置。設置詳細錯誤選項讓IIS通過您從ASP.NET提供的任何錯誤。

+1

謝謝。我發現你也可以在配置中使用@Kev在他的回答中提到的 Keith 2011-04-14 13:51:28

+0

@凱斯:你解決了這個問題嗎? – abatishchev 2011-10-28 20:27:09