La prima cosa che ho fatto è stato cercare su Google, ovviamente, ma non ho trovato nulla che facesse veramente al caso mio. Quello di più vicino che ho trovato sono stati due post sui forum di google.
Questo e
questo. In cui diversi utenti lamentano la perdita dei cookie e della sessione.
Ed il suggerimento è di cancellare tutti i cookies dal browser. Ovviamente è inaccettabile dal punto di vista del sito. Ma per diverso tempo è stata l'unica soluzione che ho avuto in mano.
A questo punto non avendo alternative,
ho provato rivedere tutto il codice, ho cercato di cancellare tutti i cookie prima di riautenticare, ho cambiato la logica di autenticazione. Il tutto molto frustrante, perché
si doveva procedere alla cieca. Fai una modifica, la rilasci, aspetti due o tre settimane e vedi se qualcuno lamenta problemi e dopo ci riprovi.
Dopo mesi di prove, con qualche miglioramento, ma non una risoluzione completa,
ho provato la logica di Sherlock Holmes: "
Una volta eliminato l'impossibile, ciò che resta, per quanto improbabile, deve essere la verità."
Analizzando con
fiddler gli header http che venivano passati da e per il browser, ho notato che il cookie di autenticazione criptato di .net aveva un nome un po' diverso da tutti quelli che vedevo.
Si chiama .ASPXAUTH. Con il punto davanti. La scelta è sensata per evitare che un programmatore inavvertitamente scelga un nome che sovrascriva il cookie di autenticazione.
Una volta eliminato l'impossibile, ciò che resta, per quanto improbabile, deve essere la verità. Ma fosse che?
Un rapido giro in documentazione, e vedo come si cambia il nome del cookie su cui è memorizzata l'autenticazione.
Scelgo un nome che non contenga il punto.
Rilascio.
Il problema ad ora, sembra essere risolto.
Obiettivamente un problema molto strano e rognoso. Non sono sicuro di tutte le condizioni per avere questo errore, se fosse il dominio di terzo livello, l'https o più probabilmente entrambe le cose. Data la scarsa ripetibilità, sarebbe molto lungo fare test per isolare completamente le cause di errore.
Certo che se uno volesse pensare male, potrebbe sembrare un dispettuccio verso Microsoft...., chi altri usa un punto all'inizio del nome di un cookie? :-)