Ho un problema strano intermittente con MVC4/IIS/Autenticazione moduli.MVC4/IIS/Autenticazione moduli Autenticazione SSO
Ho un paio di siti che passano il controllo l'un l'altro utilizzando SSO. La maggior parte delle volte il passaggio di consegne avviene correttamente e l'utente viene reindirizzato al sito successivo come previsto. Tuttavia, in alcuni casi, all'utente viene chiesto di accedere nuovamente, anche se le informazioni SSO valide sono state inviate. Il metodo SSO
è decorato con l'attributo [AllowAnonymous]
e il numerodispone anche di una posizione che garantisce l'accesso a /account/sso a tutti gli utenti.
Sembra che si verifichi quando il sito di destinazione viene colpito per la prima volta, una volta che il pool di applicazioni si è riscaldato, il problema scompare.
Alcuni altri punti:
1 entrambi i siti sono .net 4, quindi non ci dovrebbero essere problemi di crittografia legacy.
2. questo problema accade molto raramente (< il 10% del tempo) in modo che il codice stesso dovrebbe essere sana
3. Hosting è IIS 7.5 sul win7x64 localmente, e azzurro - avviene in entrambi i luoghi
4. sembra essere indipendente dal browser
<location path="account/sso">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
[Authorize]
public class AccountController : BaseControllerTestable
{
public AccountController()
: base()
{
}
[AllowAnonymous]
public ActionResult SSO(string AuthToken, string Target)
{
//SSO logic here
}
}
Qualche idea?
La schermata di accesso viene visualizzata all'avvio di una nuova sessione? Come è impostato il timeout della sessione per entrambe le app Web? hanno pool di applicazioni diversi? queste piscine hanno un ambiente di riciclaggio? ha reso definibili i contatori delle prestazioni dei siti e ha registrato i contatori delle prestazioni rilevanti del sito come il timeout della sessione, le ricompilazioni? – Siraf
Sembra decisamente non un problema di codice. La mia ipotesi potrebbe essere il timeout dei cookie se si utilizzano i cookie o il riciclo del pool di app.Metti un po 'di traccia nella tua logica di autenticazione, il metodo SSO viene eseguito quando si verifica il problema? – Sergey