我可以帮您进行翻译。以下是需要翻译的内容:
我需要使用JWT创建一个登录功能。当我使用以下代码时:
private string BuildToken(User user)
{
var claims = new[] {
new Claim(JwtRegisteredClaimNames.Sub, user.DisplayName),
new Claim(JwtRegisteredClaimNames.Email, user.Email),
new Claim(JwtRegisteredClaimNames.Birthdate, user.BirthDate.ToString()),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(_config["Jwt:Issuer"],
_config["Jwt:Issuer"],
claims,
expires: DateTime.Now.AddMinutes(30),
signingCredentials: creds);
return new JwtSecurityTokenHandler().WriteToken(token);
}
它显示了这个错误:
严重性 代码 描述 项目 文件 行数 抑制状态 错误 CS0021 无法将索引[]应用于类型为'IConfiguration'的表达式 StoreFinal C:\Users\Mr-Programer\Desktop\New folder\StoreFinal\StoreFinal\Areas\Admin\Controllers\LoginController.cs 65 活动的
在这一行中显示了错误:var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
IConfiguration
中绑定它。在需要的地方注入该模型。 - NkosiIConfiguration
类型是否来自不同的命名空间? - Kirk LarkinIConfiguration
是来自Microsoft.Extensions.Configuration
的IConfiguration
,那么你的代码没有问题。错误的唯一合理解释是,在你的代码库中有另一个不是字典类型的IConfiguration
对象。 - Chris Pratt