【问题标题】:Handling exception in asp.net core for certain exception type?为某些异常类型处理asp.net核心中的异常?
【发布时间】: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


【解决方案1】:

还有一个关于exception handling using the middleware 方法的讨论。您看到的是重定向/路由方法,但是您还有其他方法,例如过滤器/属性/全局异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 2020-12-18
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多