gpt4 book ai didi

c# - 如何使用 .NET 5 的 IdentityModel 扩展生成 JWT token

转载 作者:太空狗 更新时间:2023-10-29 19:55:39 25 4
gpt4 key购买 nike

我正在使用IdentityModel Extensions for .NET版本 4 使用对称 key SHA256生成 JWT token ,如下所示,它运行良好:

var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),

TokenIssuerName = Issuer,
AppliesToAddress = Audience,

Lifetime = new Lifetime(now, expirationTime),

SigningCredentials = new SigningCredentials(
new InMemorySymmetricSecurityKey(symmetricKey),
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
"http://www.w3.org/2001/04/xmlenc#sha256"),
};

var securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(securitytoken);

但是当我尝试升级到 .NET 5 的 IdentityModel 扩展时,如下代码:

var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),

Issuer = Issuer,
Audience = Audience,

Expires = expirationTime,
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(symmetricKey), "SHA256")
};

var securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(stoken);

我遇到异常:

IDX10634: Unable to create the SignatureProvider.

SignatureAlgorithm: 'SHA256', SecurityKey: 'Microsoft.IdentityModel.Tokens.SymmetricSecurityKey'is not supported.

使用版本 5 的新代码有什么问题。

最佳答案

他们稍微改变了他们的实现,所以

改变

SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(symmetricKey), "SHA256")

SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(symmetricKey), Microsoft.IdentityModel.Tokens.SecurityAlgorithms.HmacSha256Signature)

关于c# - 如何使用 .NET 5 的 IdentityModel 扩展生成 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com