2011-12-27 132 views
0

我正在研究ASP.net MVC 3應用程序,如果他無法訪問應用程序,我需要爲用戶顯示一個友好的頁面。我在網上關注了很多文章,但沒有一篇提到上述問題的端到端解決方案,因此我無法得到它的工作。在Asp.Net中顯示401的自定義錯誤頁面MVC

任何指針?

非常感謝。

+0

http://stackoverflow.com/questions/553922/custom-asp-net-mvc-404-error-page – 2011-12-27 23:18:39

+0

這已經在這裏找到答案 http://stackoverflow.com/questions/553922/custom-asp-net-mvc-404-error-page – 2011-12-27 23:19:40

+1

上面的鏈接提到如何捕獲404。顯然,這對401不起作用。你知道如何處理401(未授權的異常)嗎? – annantDev 2011-12-28 00:40:13

回答

0

我在應用程序中做的是創建一個更友好的共享視圖,然後將響應代碼設置爲任何我需要的。例如,我將創建一個共享的ErrorPage視圖,然後使用Response.StatusCode = 500來確保瀏覽器正確地註冊它是一個錯誤頁面。無法告訴您我看到過多少次自定義頁面未找到頁面,但他們沒有將狀態碼正確設置爲404,因此它返回了200狀態並被搜索引擎編入索引。

+0

你可以將你上面提到的工作樣本粘貼一下嗎? – annantDev 2011-12-28 00:41:07

0

您的控制器上是否有[Authorize]設置?配對

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

而不是401,我的用戶會被重定向回我的登錄頁面。

或者如果您的身份驗證失敗,您可以簡單地執行RedirectToAction

+0

我有授權屬性,但我使用基本身份驗證,而不是表單身份驗證。在這種情況下,如果用戶未被授權,他們會看到醜陋的401(您沒有被授權..)頁面。 – annantDev 2011-12-28 16:50:55

+0

爲什麼不給它一個旋風? :) – Ron 2011-12-31 06:13:49

+0

RedirectToAction是不好的,如果你想在沒有有效的許可的情況下返回一個401狀態碼 – DevDave 2013-09-02 11:03:08