我已经在我的WebApi项目中实现了基于策略的授权。它工作正常,唯一的问题是我无法更改失败消息。经过一番调查,我发现此功能尚未实现。 Issue tracked here。作为一种解决方法,我正在考虑引发一个异常而不是context.Fail()
。
这是个好主意吗?可以有一些问题吗?
示例代码:
public class MySampleAuthorizationHandler : AuthorizationHandler<MySampleRequirement>
{
protected override async Task HandleRequirementAsync(
AuthorizationHandlerContext context,
MySampleRequirement requirement)
{
if (true)
{
throw new UnauthorizedAccessException("My custom message");
}
else
{
context.Succeed(requirement);
}
return Task.CompletedTask;
}
}