C# 处理客户端请求身份验证的正确方法
我目前正在使用.NET5和C#开发一个API。我面临的问题是,我需要获取/发布的客户端等需要不同类型的身份验证,包括:C# 处理客户端请求身份验证的正确方法,c#,api,asp.net-core,C#,Api,Asp.net Core,我目前正在使用.NET5和C#开发一个API。我面临的问题是,我需要获取/发布的客户端等需要不同类型的身份验证,包括: API密钥 客户端证书 非统组织 每个客户机都至少有一个,可能还有两个(API密钥+其他)。我正在努力找出如何实现这些调用。我想到了一些想法,但我不确定其中是否有一个真的足够。我正在使用HttpClient调用外部客户端。这些都将来自单个服务或控制器。对于每种类型的身份验证,我无法将它们拆分为不同的服务或控制器 以下是我的想法: 使用if或switch语句,根据所需的身份
- API密钥
- 客户端证书
- 非统组织
HttpClient
调用外部客户端。这些都将来自单个服务或控制器。对于每种类型的身份验证,我无法将它们拆分为不同的服务或控制器
以下是我的想法:
- 使用if或switch语句,根据所需的身份验证类型应用必要的配置。这是迄今为止最糟糕的想法,会有太多的重复。这里没有干货
- 使用
处理程序。实际上,创建三个处理程序(每种身份验证类型一个),并让请求在传递时激活正确的处理程序HttpClient
- 使用类型化客户端。但这只允许一个
与单个服务相关。我需要这三个都能提供任何服务HttpClient
- 在API中使用简单的中间件来处理请求及其身份验证(如有必要)