C# 基于url中共享秘密的授权策略,无需身份验证

C# 基于url中共享秘密的授权策略,无需身份验证,c#,asp.net-core,authentication,authorization,C#,Asp.net Core,Authentication,Authorization,由于外部api的限制,url中预先共享的秘密是我们能够安全通信的唯一方式。他们将向我们的服务器发送消息 我以标准asp.net核心方式制定了一个自定义策略,现在应该能够做到这一点。 它将获得注入的秘密,并通过注入的ContextProvider将其与查询参数进行比较 现在,如果没有UseAuthentication()我就无法使用它,因为我实际上没有任何身份验证或标识,我将如何使用它 我现在已经通过路由上的自定义中间件解决了这个问题,但最好是通过AuthorizationPolicy完成。这可能

由于外部api的限制,url中预先共享的秘密是我们能够安全通信的唯一方式。他们将向我们的服务器发送消息

我以标准asp.net核心方式制定了一个自定义策略,现在应该能够做到这一点。 它将获得注入的秘密,并通过注入的ContextProvider将其与查询参数进行比较


现在,如果没有
UseAuthentication()
我就无法使用它,因为我实际上没有任何身份验证或标识,我将如何使用它


我现在已经通过路由上的自定义中间件解决了这个问题,但最好是通过AuthorizationPolicy完成。这可能吗?

在ASP.NET核心中,授权和身份验证紧密相连。如果您不想设置身份验证服务,为了满足检查url中传递的res共享机密的要求,您可以实现自定义中间件(如您所做)或自定义筛选器。“因为我没有任何身份验证或标识”,但您有身份验证,您希望实现共享秘密身份验证。您可以为此实现自定义身份验证方案,然后正常使用授权系统。我有一篇与此相关的文章: