在 ASP.NET Core 中,我们可以在控制器中的方法上使用
[Authorize]
属性。它适用于身份验证和授权。
但是在使用干净的架构时,我们做不到。认证授权属于应用层
问题是每次我想验证或授权某事时,我都需要在代码中手动完成。看起来不太好
所以我想一定有更好的解决方案。我知道我可以使用
MediatR
和管道,但我不使用它。相反,我有简单的界面 IRequestHandler<TRequest, TResult>
和 HandleAsync
方法。
如何对从
HandleAsync
继承的类或直接从它继承的类对IRequestHandler
的每次调用执行身份验证或授权?如果身份验证/授权失败并返回适当的结果,我如何取消 HandleAsync
方法的处理(适当的我的意思是与 TResult
中定义的 IRequestHandler
兼容)?