Asp.net web api 如何仅限制WebApi授权路由的子集?
我们有一个应用程序,它要求一些用户无法访问大多数可用路由,只能访问少数路由。我们正在为公共调用使用标准的.net[匿名]注释,但需要在允许某些调用和不允许其他调用之间添加一些附加层 是否有一种方法可以根据某些注释向授权功能添加自定义逻辑?是的,您需要 乍一看,您需要:Asp.net web api 如何仅限制WebApi授权路由的子集?,asp.net-web-api,Asp.net Web Api,我们有一个应用程序,它要求一些用户无法访问大多数可用路由,只能访问少数路由。我们正在为公共调用使用标准的.net[匿名]注释,但需要在允许某些调用和不允许其他调用之间添加一些附加层 是否有一种方法可以根据某些注释向授权功能添加自定义逻辑?是的,您需要 乍一看,您需要: 将策略配置(将用户作为策略定义的组的成员进行协调时必须满足的名称和规则集)添加为ConfigureServices(IServiceCollection)configuration的一部分 为策略定义iaauthorization
ConfigureServices(IServiceCollection)
configuration的一部分iaauthorizationrequirement
。为了将用户分类作为策略的一部分,必须满足这些条件。这些需求将由IAuthorizationHandler
验证,必须注册为正常服务。实际上,这就是通过在给定的上下文中调用Success
或Fail
来决定规则对用户是否适用的人。这里我们并没有返回true或false,只是调用这两种方法中的一种来做出决定ConfigureServices(IServiceCollection)
configuration的一部分IAuthorizationRequirement
。必须满足这些要求,才能将用户分类为策略的一部分。这些要求将由IAuthorizationHandler
验证,该处理程序必须注册为正常服务。实际上,这是决定规则是否适合用户的人,通过在给定的上下文中调用Success
或Fail
。这里我们不返回true或false,只调用这两种方法中的一种来做出决定但如果已经定义了角色,您也可以使用它们。策略更像是“必须通过的”,而基于角色的自动生成更像是“您是谁”。如果在授权的用户集中,您需要对谁可以访问什么方法进行更精细的控制,his似乎很适合用于基于策略的身份验证:如果在授权的用户集中,您需要对谁可以访问哪些方法进行更精细的控制,his似乎很适合用于基于策略的身份验证: