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
};
});
}
答案 0 :(得分:3)
错误基本上是“无法从SymmetricSecurityKey(字符串)转换为IEnumerable&lt; SymmetricSecurityKey&gt;”。这意味着IssuerSigningKeys
期待IEnumerable
(List
或Array
)SymmetricSecurityKey
而不是单个值。
修复很容易,给它一个数组:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKeys = new[] { new SymmetricSecurityKey(key) },
ValidateIssuer = false,
ValidateAudience = false
};
});