2011-12-01 61 views
1

我在Google和這裏發現了一些關於此問題的頁面,但沒有人似乎已經解決了我所看到的問題。我正在使用IIS 7.5。該網站使用Windows身份驗證並訪問用戶必須登錄的任何站點(在第一頁加載時自動發生)。如果用戶沒有訪問該網站,那麼他們應該得到一個401或403,我試圖爲此創建一個簡單的HTM自定義錯誤頁面。錯誤頁面位於設置了匿名身份驗證的Errors文件夾中。.NET Windows身份驗證自定義錯誤頁面

如果我嘗試加載網站並強制失敗的身份驗證,那麼我只是得到標準的服務器錯誤頁面,HTTP錯誤401,它看起來不像它試圖加載錯誤頁面。如果我嘗試加載錯誤頁面本身,那麼工作正常。

沒有授權位,如果用戶已登錄,則可以訪問整個站點,如果用戶無法進行身份驗證,則只能訪問錯誤頁面。我已將以下部分添加到我的web.config中:

<customErrors mode="On" defaultRedirect="~/Errors/AuthenticationError.htm"> 
     <error statusCode="401" redirect="~/Errors/AuthenticationError.htm" /> 
     <error statusCode="403" redirect="~/Errors/AuthenticationError.htm" /> 
    </customErrors> 

任何幫助將非常感謝!

回答

2

OK我已經設法解決這個問題,IIS 7.5似乎很高興地忽略customErrors,所以httpErrors必須在system.webServer部分中使用。您似乎也必須聲明errorMode =「Custom」。我得到的代碼塊:

<httpErrors errorMode="Custom" defaultResponseMode="File"> 
    <remove statusCode="401" subStatusCode="-1" /> 
    <remove statusCode="403" subStatusCode="-1" /> 
    <error statusCode="401" path="Errors\AuthenticationError.htm" /> 
    <error statusCode="403" path="Errors\AuthenticationError.htm" /> 
</httpErrors> 

我有一種感覺,這臺整個網站使用非詳細的錯誤頁面,甚至在未包含在部分頁面。有一個選項可以遠程顯示自定義錯誤並在本地顯示詳細錯誤,以便可能是一種可能的解決方法。

This webpage是我發現的最好的一個突出顯示所有這些。

+2

鏈接已死亡。 對於未來的人們,您可以在這裏找到該頁面的快照http://web.archive.org/web/20121005053916/http://tedgustaf.com/zh/blog/2011/5/custom- 404和錯誤的頁面換ASP淨和靜態文件/ –

相關問題