1

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

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

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

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

当然,我需要将它保存在请求处理程序中,因为它们正在形成实际的应用程序层,并且我希望它独立于 ASP.NET。也只测试了这一层。

4

1 回答 1

1

我会将授权留给控制器,但这只是一种意见。

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

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

于 2018-10-15T02:37:37.703 回答