【发布时间】:2017-04-07 22:40:18
【问题描述】:
我有 asp.net 核心应用程序。为了处理异常,我使用Microsoft.AspNetCore.Diagnostics 中的一种扩展方法
app.UseExceptionHandler("/Home/Error");
所以当发生错误时,用户会被重定向到错误页面。
我想知道如何根据异常类型将用户重定向到特定页面?像
if( exception is NotAuthorizedException)
{
// redirect to "Home/NotAuthrozied"
}
else
{
// redirect to "Home/Error"
}
我如何在 app.UseExceptionHandler() 方法中处理这个问题?
我已经看过here 但找不到任何东西。我也试图避免创建自定义中间件来处理异常。
【问题讨论】:
-
好奇,您在应用中使用什么进行身份验证/授权?如果您使用 Identity,当您使用 Authorize 属性时,它将为您处理。
-
如您所见,
UseExceptionHandler仅考虑了ExceptionHandlingPath(您可以在其源代码中查看)。所以只需使用自定义中间件,这很容易。 -
@R.Richards 我们有使用 OpenID 连接的外部身份验证提供程序。因此,当用户通过此外部提供商进行身份验证时,应用程序还会检查用户是否存在应用程序数据库,如果不存在则抛出异常.. 在这种情况下,我需要将用户重定向到未授权页面
标签: asp.net-core asp.net-core-mvc asp.net-core-1.0 coreclr