2011-10-07 156 views
3

我在ASP.NET中成功實施了基於角色的授權。當一個人沒有所需的角色時,他會看到401.2的錯誤頁面未被授權。 我現在想要完成的是在我的應用程序中有一個自定義401頁面,並通過web.config中的設置將其重定向到那裏。我試過這個:asp.net 4.0自定義401.2未授權自定義頁面

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"><error statusCode="401" redirect="NoAccess.htm" /></customErrors>  

但是這並沒有被捕獲。我必須在IIS中覆蓋它嗎?我希望不會那樣會讓事情變得更加難以部署

+0

從哪裏測試設置?如果您將模式設置爲「RemoteOnly」,則只有當您嘗試從遠程客戶端訪問站點時纔會重定向。 – mamoo

+0

我嘗試了其他選項,如「關」,但沒有幫助 – georgian98

+0

set customErrors mode =「On」 –

回答

1

我想你可能會碰到的是你爲整個應用程序設置了安全性。那就是當發生401時,重定向到NoAccess.htm失敗,因爲用戶無權訪問該文件。既然你沒有發佈整個文件,我不能確定,但​​這是我最好的猜測。

請確保您有一個<位置路徑= 「/ NoAccess.htm」 > <的System.Web > <授權> <允許用戶= 「?」/> </authorization < < /system.web>在您的web.config文件中。