IDX10603: Алгоритм «HS256» требует, чтобы SecurityKey.KeySize был больше «128» бит. KeySize сообщил: «32». Имя параметра ⇐ C#
IDX10603: Алгоритм «HS256» требует, чтобы SecurityKey.KeySize был больше «128» бит. KeySize сообщил: «32». Имя параметра
Я просто работал с веб-API Asp.Net Core и реализовал аутентификацию. И я вызываю этот API из приложения Angular. Но я всегда получаю сообщение об ошибке, как показано ниже.
IDX10603: Алгоритм «HS256» требует, чтобы значение SecurityKey.KeySize было больше «128» бит. KeySize сообщил: «32». Имя параметра: key.KeySize
Ниже приведен мой код для ConfigureServices в файле Startup.cs.
public IServiceProvider ConfigurationServices (службы IServiceCollection) { Services.AddDbContext(option => option.UseInMemoryDatabase("AngularApp")); Services.AddCors(options => options.AddPolicy("Cors", builder => { builder.AllowAnyOrigin(). РазрешитьЛюбойМетод(). РазрешитьЛюбойЗаголовок(); } )); var SigninKey = новый SymmetricSecurityKey(Encoding.UTF8.GetBytes("Секретная фаза")); Services.AddAuthentication(опции => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(cfg => { cfg.RequireHttpsMetadata = ложь; cfg.SaveToken = правда; cfg.TokenValidationParameters = новый Microsoft.IdentityModel.Tokens.TokenValidationParameters() { IssuerSigningKey = ключ подписи, Валидатаудиенс = ложь, ValidateIssuer = ложь, Валидателайфтайм = ложь, ValidateIssuerSigningKey = true, ВалидатеАктор = ложь, ClockSkew = TimeSpan.Zero }; }); услуги.AddMvc(); вар serviceProvider = Services.BuildServiceProvider(); вернуть поставщика услуг; } И я использую JwtPackageв своем контроллере следующим образом.
JwtPackage CreateJwtToken (пользователь usr) { var SigninKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("это мой собственный секретный ключ для аутентификации")); вар SignInCredentials = новые SigningCredentials (signinKey, SecurityAlgorithms.HmacSha256); вар претензии = новая претензия [] { новая заявка (JwtRegisteredClaimNames.Sub,usr.Id) }; вар jwt = новый JwtSecurityToken (претензии: претензии, SigningCredentials: SignInCredentials); вар encodedJwt = новый JwtSecurityTokenHandler().WriteToken(jwt); return new JwtPackage() { FirstName = usr.FirstName, Token = encodedJwt }; } Можете ли вы помочь мне решить эту проблему? Спасибо.
Я просто работал с веб-API Asp.Net Core и реализовал аутентификацию. И я вызываю этот API из приложения Angular. Но я всегда получаю сообщение об ошибке, как показано ниже.
IDX10603: Алгоритм «HS256» требует, чтобы значение SecurityKey.KeySize было больше «128» бит. KeySize сообщил: «32». Имя параметра: key.KeySize
Ниже приведен мой код для ConfigureServices в файле Startup.cs.
public IServiceProvider ConfigurationServices (службы IServiceCollection) { Services.AddDbContext(option => option.UseInMemoryDatabase("AngularApp")); Services.AddCors(options => options.AddPolicy("Cors", builder => { builder.AllowAnyOrigin(). РазрешитьЛюбойМетод(). РазрешитьЛюбойЗаголовок(); } )); var SigninKey = новый SymmetricSecurityKey(Encoding.UTF8.GetBytes("Секретная фаза")); Services.AddAuthentication(опции => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(cfg => { cfg.RequireHttpsMetadata = ложь; cfg.SaveToken = правда; cfg.TokenValidationParameters = новый Microsoft.IdentityModel.Tokens.TokenValidationParameters() { IssuerSigningKey = ключ подписи, Валидатаудиенс = ложь, ValidateIssuer = ложь, Валидателайфтайм = ложь, ValidateIssuerSigningKey = true, ВалидатеАктор = ложь, ClockSkew = TimeSpan.Zero }; }); услуги.AddMvc(); вар serviceProvider = Services.BuildServiceProvider(); вернуть поставщика услуг; } И я использую JwtPackageв своем контроллере следующим образом.
JwtPackage CreateJwtToken (пользователь usr) { var SigninKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("это мой собственный секретный ключ для аутентификации")); вар SignInCredentials = новые SigningCredentials (signinKey, SecurityAlgorithms.HmacSha256); вар претензии = новая претензия [] { новая заявка (JwtRegisteredClaimNames.Sub,usr.Id) }; вар jwt = новый JwtSecurityToken (претензии: претензии, SigningCredentials: SignInCredentials); вар encodedJwt = новый JwtSecurityTokenHandler().WriteToken(jwt); return new JwtPackage() { FirstName = usr.FirstName, Token = encodedJwt }; } Можете ли вы помочь мне решить эту проблему? Спасибо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение