我已经制作了自己的自定义基于策略的授权,如MS Docs here中所述。
我的问题是如何处理非成功授权:
public class MinimumAgeHandler : AuthorizationHandler<MinimumAgeRequirement>
{
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MinimumAgeRequirement requirement)
{
context.Fail(); //<-- Simplified
return Task.CompletedTask;
}
}
如果我的授权未设置context.Suceed(requirement)
或明确调用context.Fail()
,则会引发类型InvalidOperationException
的异常。
InvalidOperationException:未指定authenticationScheme,并且 找不到DefaultChallengeScheme。
我希望得到另一种包含MinimumAgeRequirement
的Exception,以便我能够显示一个自定义错误,例如“嘿,你太年轻了。”
有没有办法在捕获异常时获取信息?