Anch'io sono uno sviluppare e non un sistemista, quindi risponderti a tutto con precisione non so, ma ti spiego il nostro problema sperando possa esserti utile a capire il tuo.
Noi abbiamo un sito in asp.net. Ogni macchina ha impostazioni diverse perchè ha sistemi diversi e programmi installati diversi. Le banche hanno impostazioni di rete diverse con Session Affinity diverse e policy diverse. Il sito risiede su un server con impostazioni proprie diverse dagl'altri sistemi e con un web.config ovviamente condiviso da tutti quando accedono al sito. I valori di default sono di circa 20 minuti in tutto, ma non si sa per quale ragione dopo circa 1 minuto tutti gli utenti venivano risbattuti alla pagina di login, perchè comunque intercettavamo l'errore. Dopo svaraiti tentativi durati una settimana e con circa 100 persone coinvolte, si è scoperto che la SessionAffinity di ogni sistema di rete andava settato diversamente così come la policy di inattività.
Risolto questo problema alcuni utenti venivano comunque sbattuti via, allora dopo un'analisi accurata al codice è stato deciso di alzare i tempi di permanenza dei webservices e di sessione del progetto, e da allora nessuno ha mai riscontrato problemi.
Ovviamente per risolvere il tutto serve chi conosce come mettere mani al web.config per non fare danni, quindi un programmatore senior e qualche sistemista scafato visto che il problema di settaggio dei parametri sopra citati non è di poco conto.
Ovviamente il tuo problema è riportato in piccolo ma suppongo sia analogo per come descritto. In ogni caso nel web.config, aggiungete questa sezione:
<authorization>
<deny users="?"/>
</authorization>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="auth" protection="All" timeout="120">
</forms>
</authentication>
Team Icon - Software Engineering
------------------------------
Unicredit Global Information Services Spa
Senior Developer