【发布时间】:2018-11-06 11:26:49
【问题描述】:
所以在 .net framework 4.7.1 的 Web API 2 中,如果你有一个处理异常的过滤器,定义如下:
public sealed class RequestExceptionFilter : ExceptionFilterAttribute..
在 WebApiConfig 中:
config.Filters.Add(new MyAuthorizationFilter());
config.Filters.Add(new RequestExceptionFilter());
如果在MyAuthorizationFilter 中发生任何异常,它会在RequestExceptionFilter 中被捕获。
在 .net core 2.1 中,我有以下内容:
services.AddMvc(options =>
{
options.Filters.Add(new MyExceptionFilter());
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddAuthentication("Basic").AddScheme<AuthenticationSchemeOptions, UserAuthenticator>("Basic", null)
// configure DI for application services
services.AddScoped<IUserAuthenticator, UserAuthenticatorHandler>();
我有以下处理程序:
public sealed class UserAuthenticator: AuthenticationHandler<AuthenticationSchemeOptions>
现在,如果我在protected override async Task<AuthenticateResult> HandleAuthenticateAsync()(UserAuthenticator 的方法)中抛出异常,服务器会返回 Internal Server Error 并跳过异常处理。
我可以让它传播到异常过滤器吗?
【问题讨论】:
标签: c# asp.net-core asp.net-core-2.0