【问题标题】:Is JwtSecurityTokenHandler thread safeJwtSecurityTokenHandler 线程安全吗
【发布时间】:2018-05-01 22:08:05
【问题描述】:

我正在使用 JwtSecurityTokenHandler 在 aspnet 核心 web api 应用程序中发布令牌:

JwtSecurityToken token = BuildJwtSecurityToken(...);
public string toks = new JwtSecurityTokenHandler().WriteToken(token);

每次请求和创建令牌时,都会实例化一个新的 JwtSecurityTokenHandler,我可以使用它的全局实例并将其用于每次令牌生成吗?

private JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
private GenToken(JwtSecurityToken token) => handler.WriteToken(token);

这样使用有什么问题吗?

【问题讨论】:

标签: c# asp.net-core asp.net-identity jwt


【解决方案1】:

文档说 JwtSecurityTokenHandler 的实例成员不能保证是线程安全的。

https://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.jwtsecuritytokenhandler(v=vs.114).aspx

【讨论】:

    【解决方案2】:

    我看到的大多数例子,比如this one on blog.wille-zone.de,都是为每个请求单独创建的。

    我不会太聪明的;即使它目前是线程安全的,这里也没有人可以承诺 Microsoft 会保持这种状态。

    如果您确实希望得到他们的承诺,您可以先在 https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet 提出问题。他们可以将其写入规范/代码/文档。

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 2011-07-04
      • 2014-04-26
      • 2012-11-30
      • 2010-12-30
      • 2013-03-12
      • 2021-08-03
      • 2010-12-27
      • 2018-06-04
      相关资源
      最近更新 更多