如果失败,如何在ASP.NET Core中处理基于自定义策略的授权?

时间:2018-01-15 09:24:00

标签: c# asp.net asp.net-core .net-core asp.net-core-mvc

我已经制作了自己的自定义基于策略的授权,如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,以便我能够显示一个自定义错误,例如“嘿,你太年轻了。”

有没有办法在捕获异常时获取信息?

0 个答案:

没有答案