


ASP.NET Core 授权:了解授权者的角色
在 ASP.NET Core 中,授权者是一个组件,用于检查用户是否具有执行特定操作所需的权限。它就像应用程序资源的看门人。当用户请求资源或执行操作时,将调用授权者来检查用户是否具有访问该资源或执行该操作的适当权限。如果用户没有必要的权限,授权者将拒绝访问并返回错误。例如,假设您有一个 Web API,允许用户创建、读取、更新和删除 (CRUD) 产品。您可以使用授权者来检查用户是否具有执行其中每项操作的适当权限。如果用户没有必要的权限,授权者将拒绝访问并返回错误。授权者可以通过多种方式实现,例如使用自定义属性、过滤器或中间件。它们还可以与其他身份验证和授权系统集成,例如 OAuth 或 OpenID Connect。在 ASP.NET Core 中,内置授权者称为“DefaultAuthorizationPolicy”,它基于“AuthorizeAttribute”类。此属性可以应用于控制器、操作,甚至单个参数,以指定访问所需的权限。例如,下面是一个示例,说明如何使用 AuthorizeAttribute 要求用户具有“管理员”角色才能访问特定的权限action:
```
[Authorize(Roles = "Admin")]
public IActionResult MyAction()
{
// 只有具有 Admin 角色的用户才能访问此操作
}
```
在此示例中,AuthorizeAttribute 为应用于“MyAction”方法,并要求用户具有“Admin”角色才能访问它。如果用户没有“管理员”角色,他们将被拒绝访问并返回错误。



