gentili,
mi scuso preventivamente avendo già postato la mia richiesta in altro sito senza ottenere risposta, spero di non violare le regole sul cross-posting che di solito evito.
Mi sono riaffacciato da poco su Asp.Net e WebApi che avevo studiato tempo fa. Ho creato una WebApi in Asp.Net MVC (non Core) con autenticazione Owin abilitando il CORS con la riga seguente nel file Startup.cs
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Cors funziona perché se faccio una chiamata con Postman con l'header Origin e l'indicazione di un url es: http://localhost mi ritorna lo stesso indirizzo inserito nell'header della response Access-Control-Allow-Origin aggiungendo anche l'header: Access-Control-Allow-Credentials con valore true.
Per vari motivi le chiamate all'endpoint sono multiple avendo deciso di scaricare i dati a pacchetto invece che in un'unica soluzione.
Es.
miosito.com/api/articoli/1
miosito.com/api/articoli/2
.....
miosito.com/api/articoli/35
Se uso la libreria RestSharp con un client winform il tutto funziona perfettamente, il problema riguarda un'App che gira su Android.
Random, e non sempre, arrivata alla 13a-14a chiamata IIS non ritorna più l'header e pertanto il download si blocca per un errore su CORS.
Non riesco a capire se è un errore di programmazione lato WebApi, un problema di IIS oppure se il problema è lato App.
Ringrazio chiunque mi dia uno spunto per verificare.
Lucius
Modificato da luciusinfabula il 01 ottobre 2020 14:12 - Ad integrazione del mio problema ho capito CORS dovrebbe essere correttamente configurato ma si dovrebbe trattare di un problema di richiesta preflight fatta dal browser prima della richiesta vera e propria, che non contiene nè le credenziali per ottenere il token di sicurezza, nè il token per i controller che sono tutti etichettati con authorize.
Il problema è che non riesco a gestire queste richieste preflight del browser lato server IIS, ho letto molteplici guide ma senza riuscire a darne fuori.
Qualcuno ha una guida chiara per gestire in Asp.Net WebApi MVC (non Core)?
Sono completamente bloccato su questo punto.
Grazie. Lucius