多层授权

时间:2018-08-13 07:28:00

标签: asp.net-web-api authorization mediatr

我正在使用ASP.NET Core和MediatR构建应用程序/ Web API。

身份验证(Google帐户)在ASP.NET Core中完成。控制器仅是将所有工作委托给MediatR及其请求处理程序的薄层。

关于授权,目前,我的方法是,我的大多数控制器都装饰有[Authorize]属性,并且在MediatR的管道检查中(通过行为)还对相应的请求处理程序进行了验证(如果通过了行为),因此存在重复性。

我的问题是,让所有控制器都允许匿名访问并且仅在MediatR的管道中检查身份验证/授权,这是一个不好的做法吗?

我肯定需要将其保留在请求处理程序中,因为它们正在形成实际的应用程序层,并且我希望它独立于ASP.NET。同样只有这一层经过测试。

1 个答案:

答案 0 :(得分:1)

我将授权交给控制者,但这只是一个意见。

如果您打算在没有内置授权功能的其他项目中使用处理程序,则将它们留在处理程序中。

这是一个“取决于”问题,因为它取决于您的特定情况。