当前位置: 首页 > 知识库问答 >
问题:

dnx451 RC1 InmemorySymmetricSecurityKey怎么了?

轩辕海
2023-03-14

我一直试图使用一个简单的密钥创建和签名JwtSecurityToken。经过大量研究,我发现的所有示例似乎都使用InMemorySymmetricSecurityKey类,但不幸的是,这个类似乎不存在于最新版本的System.IdentityModel库中。

"System.IdentityModel.Tokens": "5.0.0-rc1-211161024",
"System.IdentityModel.Tokens.Jwt": "5.0.0-rc1-211161024"
"Value cannot be null.\r\nParameter name: IDX10000: The parameter 'signatureProvider' cannot be a 'null' or an empty object."
public static string CreateTokenHMAC()
{
    HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String("test"));

    var key = new SymmetricSecurityKey(hmac.Key);

    var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);

    JwtSecurityToken token = _tokenHandler.CreateJwtSecurityToken(new SecurityTokenDescriptor()
    {
        Audience = AUDIENCE,
        Issuer = ISSUER,
        Expires = DateTime.UtcNow.AddHours(6),
        NotBefore = DateTime.Now,
        Claims = new List<Claim>()
        {
            new Claim(ClaimTypes.Email, "johndoe@example.com")
        },
        SigningCredentials = signingCredentials
    });

    return _tokenHandler.WriteToken(token);
}

这是我第一次使用JwtSecurityToken,所以我猜我可能在某个地方漏掉了一个步骤

共有1个答案

卫子平
2023-03-14

我设法达到了完全相同的例外。我通过另一种方式生成密钥来解决这个问题:

RSAParameters keyParams;
using (var rsa = new RSACryptoServiceProvider(2048))
{
    try
    {
        keyParams = rsa.ExportParameters(true);
    }
    finally
    {
        rsa.PersistKeyInCsp = false;
    }
}
RsaSecurityKey key = new RsaSecurityKey(keyParams);
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);

下面是Mark Hughes写的一篇关于ASP.NET 5 RC1上基于令牌的身份验证的文章

 类似资料:
  • 哑剧发生了什么?@rails活动记录取决于@basecamp马塞尔,这取决于哑剧0.3.2。现在哑剧0.3.2已经被拉走了,前进的道路是什么?

  • 我从Perfoce克隆了一个Repo到Git本地,并将其所有历史记录称为,然后我将其推送到远程回购,并使用该远程回购将合并到下。 无法将部分历史记录从Perforce导入Git,无论是还是。不管怎样,一切顺利,我删除了本地回购协议和远程回购协议。 现在,Perforce depot上有更改,因此我再次克隆了所有历史记录,我想推送,然后与合并,但我不想要整个历史记录(仅新更改)。 说有这个历史,它是

  • html此底色代表最小触发字符 此底色代表非必要完整触发字符 *需HBuilder7.1+,或者下载mui_html_snippets.rb mui_js_snippets.rb替换使用 我们只整理了部分常用到的代码块.欢迎大家提交更多的代码块方便大家开发. 组件 触发字符 mDoctype(mui-dom结构) mdo ctype mBody(主体) mbo dy mScroll(区域滚动容器)

  • 问题内容: 我想在我的IT之一中使用Springockito模拟DAO bean。在我的IT中,我必须使用spring context.xml来自动装配某些服务,还必须使用mockApplication.xml来模拟DAO。因此,如何同时使用两个xml配置文件? 我将模拟上下文包括在内 但是我还必须包括春季背景 问候拉吉卜 问题答案: 是一个数组,因此您可以根据需要指定位置。 顺便说一句:( 这只

  • 我是react新手,正在使用react引导。我有一个完美工作的react应用程序,有两个组件,我使用的是功能组件。这是代码。 应用程序。js MyVerticallycenteremodal。js 在这个阶段,我的代码工作正常。但是我需要做一些改变。我需要从MyVerticallyCenteredModal组件中删除show和onHide道具,并从Modal组件中访问道具。这是我所做的, 应用程序

  • ChatGPT怎么读?