2017-04-07 138 views
0

我有asp.net核心應用程序。爲了處理我使用的擴展方法的一個例外,從Microsoft.AspNetCore.Diagnostics處理asp.net核心中某些異常類型的異常?

app.UseExceptionHandler("/Home/Error"); 

所以發生錯誤時用戶被重定向到錯誤頁面。

我想知道如何根據異常類型將用戶重定向到某個頁面?像

if(exception is NotAuthorizedException) 
{ 
    // redirect to "Home/NotAuthrozied" 
} 
else 
{ 
    // redirect to "Home/Error" 
} 

我該如何處理app.UseExceptionHandler()方法?
我已經看了here,但沒有找到任何東西。我也試圖避免創建自定義中間件來處理異常。

+0

好奇,你在你的應用中使用什麼進行認證/授權?如果您使用Identity,那麼在使用Authorize屬性時將爲您處理此問題。 –

+0

正如你可能看到'UseExceptionHandler'只考慮'ExceptionHandlingPath'(你可以在它的源代碼中檢查它)。所以只需使用自定義中間件,這非常簡單。 –

+0

@ R.Richards我們有使用OpenID連接的外部身份驗證提供程序。所以當用戶通過這個外部提供程序進行身份驗證時,應用程序還會檢查用戶是否存在應用程序數據庫,如果不存在則拋出異常。在這種情況下,我需要將用戶重定向到未經授權的頁面 – LP13

回答