托管多个实例时如何在 C# web api 应用程序中使用 OAuth

How to use OAuth in a C# web api app when hosting multiple instances

我有一个 C# web API 应用程序,它使用 OAuth 和注释,例如:

[Authorize(Roles = "admin")]

我在 AWS elastic beanstalk 上托管它。当有 1 个实例 运行 时它工作正常,但是当我开始有多个实例时,我收到未经授权的消息返回。显然,令牌在多台机器上无效。

有没有一种方法可以向实例添加一些配置,以便它们接受在不同机器上生成的令牌?

您可以在web.config中设置MachineKey,用于在多台机器之间共享令牌。

<machineKey decryption="AES" decryptionKey="..." validation="HMACSHA256" validationKey="..." /> 

可以找到生成机器密钥的脚本here