Fix 0946
This commit is contained in:
		| @@ -40,34 +40,41 @@ builder.Services.AddHttpClient("ElectoralApiClient", client => | |||||||
|         client.BaseAddress = new Uri(baseUrl); |         client.BaseAddress = new Uri(baseUrl); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Limpiamos headers por defecto y añadimos uno que simula ser un navegador moderno. |     // Limpiamos los headers por defecto y añadimos uno que simula ser un navegador. | ||||||
|     // Esto es crucial para pasar a través de WAFs (Web Application Firewalls). |     // Esto es crucial para pasar a través de Firewalls de Aplicaciones Web (WAFs) | ||||||
|  |     // que bloquean clientes automatizados no reconocidos. | ||||||
|     client.DefaultRequestHeaders.Clear(); |     client.DefaultRequestHeaders.Clear(); | ||||||
|     client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"); |     client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"); | ||||||
|  |     client.DefaultRequestHeaders.Add("Accept", "*/*"); // Opcional, pero ayuda a parecerse más a Postman/navegador | ||||||
|  |     client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, br"); // Opcional | ||||||
|  |     client.DefaultRequestHeaders.Add("Connection", "keep-alive"); // Opcional | ||||||
|  |  | ||||||
| }) | }) | ||||||
| .ConfigurePrimaryHttpMessageHandler(() => | .ConfigurePrimaryHttpMessageHandler(() => | ||||||
| { | { | ||||||
|     return new SocketsHttpHandler |     var handler = new SocketsHttpHandler | ||||||
|     { |     { | ||||||
|         SslOptions = new SslClientAuthenticationOptions |         SslOptions = new SslClientAuthenticationOptions | ||||||
|         { |         { | ||||||
|             // Forzamos el protocolo TLS 1.3 |  | ||||||
|             EnabledSslProtocols = SslProtocols.Tls13, |             EnabledSslProtocols = SslProtocols.Tls13, | ||||||
|  |  | ||||||
|             // --- ¡¡¡LA LÍNEA CLAVE CORREGIDA!!! --- |  | ||||||
|             // Forzamos explícitamente los únicos 3 cipher suites que el servidor acepta. |  | ||||||
|             CipherSuitesPolicy = new CipherSuitesPolicy(new[] |  | ||||||
|             { |  | ||||||
|                 TlsCipherSuite.TLS_AES_128_GCM_SHA256, |  | ||||||
|                 TlsCipherSuite.TLS_AES_256_GCM_SHA384, |  | ||||||
|                 TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256 |  | ||||||
|             }) |  | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  |     if (!OperatingSystem.IsWindows()) | ||||||
|  |     { | ||||||
|  |         handler.SslOptions.CipherSuitesPolicy = new CipherSuitesPolicy(new[] | ||||||
|  |         { | ||||||
|  |             TlsCipherSuite.TLS_AES_128_GCM_SHA256, | ||||||
|  |             TlsCipherSuite.TLS_AES_256_GCM_SHA384, | ||||||
|  |             TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256 | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return handler; | ||||||
| }); | }); | ||||||
|  |  | ||||||
| builder.Services.AddSingleton<IElectoralApiService, ElectoralApiService>(); | builder.Services.AddSingleton<IElectoralApiService, ElectoralApiService>(); | ||||||
| // --- FIN DE LA SECCIÓN MODIFICADA --- |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| builder.Services.AddHostedService<Worker>(); | builder.Services.AddHostedService<Worker>(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user