无法隐式转换SymmetrySecurityKey类型

时间:2018-04-06 15:24:45

标签: c# token

Plz任何人帮助我,我无法找到问题! Can not Implicitly Convert SymmetrySecurityKey Type

  var key = Encoding.ASCII.GetBytes(Configuration.GetSection("AppSettings:Token").Value);
            services.AddDbContext<DataContext>(x => x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddMvc();
            services.AddCors();
            services.AddScoped<IAuthRepository, AuthRepository>();
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKeys = new SymmetricSecurityKey(key),
                    ValidateIssuer = false,
                    ValidateAudience = false
                };
            });
        }

1 个答案:

答案 0 :(得分:3)

错误基本上是“无法从SymmetricSecurityKey(字符串)转换为IEnumerable&lt; SymmetricSecurityKey&gt;”。这意味着IssuerSigningKeys期待IEnumerableListArraySymmetricSecurityKey而不是单个值。

修复很容易,给它一个数组:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
                {
                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidateIssuerSigningKey = true,
                        IssuerSigningKeys = new[] { new SymmetricSecurityKey(key) },
                        ValidateIssuer = false,
                        ValidateAudience = false
                    };
                });