gpt4 book ai didi

c# - 如何删除 nbf 声明

转载 作者:行者123 更新时间:2023-12-03 16:45:13 38 4
gpt4 key购买 nike

一直在四处寻找答案,但似乎找不到适合我的答案。问题是我正在尝试在 c# 中使用 ASP.NET 构建 JWT token 。我遇到的问题是它在某处自动向我的声明添加了“nbf”声明,我似乎无法弄清楚如何将其删除,因为 API 主机不允许在 token 中使用它。这是一段关于创建 token 的代码:

               var plainTextSecurityKey = "key";
var signingKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(
Encoding.UTF8.GetBytes(plainTextSecurityKey));
var signingCredentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(signingKey,
Microsoft.IdentityModel.Tokens.SecurityAlgorithms.HmacSha256Signature);


var claimsIdentity = new ClaimsIdentity(new List<Claim>()
{
new Claim("iss", "smthing"),
new Claim("sub", "smthing"),
new Claim("iat", ToUnixTime(issued).ToString()),
new Claim("exp",ToUnixTime(expire).ToString()),
new Claim("aud", JsonConvert.SerializeObject(new[] { "ohlc" }).ToString())
});

claimsIdentity.TryRemoveClaim(claimsIdentity.FindFirst("nbf"));


var securityTokenDescriptor = new Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor()
{
Subject = claimsIdentity,
SigningCredentials = signingCredentials,
};


securityTokenDescriptor.NotBefore = null;

var tokenHandler = new JwtSecurityTokenHandler();
var plainToken = tokenHandler.CreateToken(securityTokenDescriptor);
var signedAndEncodedToken = tokenHandler.WriteToken(plainToken);

我尝试在形成 claimIdentity 后删除 nbf,但它似乎没有添加到那里。

最佳答案

尝试这个:

tokenHandler.SetDefaultTimesOnTokenCreation = false

引用: System.IdentityModel.Tokens.Jwt

关于c# - 如何删除 nbf 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43977531/

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