【问题标题】:Cannot apply indexing with [] to an expression of type 'IConfiguration'无法将带有 [] 的索引应用于“IConfiguration”类型的表达式
【发布时间】:2019-05-07 03:21:17
【问题描述】:

我需要使用 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 Active

在此行显示错误:var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));

【问题讨论】:

  • 构建一个模型来保存所需的数据,并在启动时从加载的IConfiguration 绑定这些数据。在需要的地方注入模型。
  • @Nkosi 的建议是这里更好的方法,但你所展示的应该可以工作。例如,您在此处使用的 IConfiguration 类型是否来自不同的命名空间?
  • @KirkLarkin 是正确的。您的代码没有问题,假设 IConfiguration 是来自 Microsoft.Extensions.ConfigurationIConfiguration。该错误的唯一合乎逻辑的解释是代码库中某处有一个不同的 IConfiguration 对象,它不是字典类型。
  • 我遇到过这种情况。我使用的是 AutoMapper.Configuration 而不是 Microsoft.Extensions.Configuration

标签: asp.net-core asp.net-core-2.0 asp.net-core-webapi


【解决方案1】:

我在命名空间中添加了这个,它通过这个解决了:

using IConfiguration = Microsoft.Extensions.Configuration.IConfiguration;

【讨论】:

    【解决方案2】:

    添加using Microsoft.Extensions.Configuration

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      相关资源
      最近更新 更多