2010-09-22 7 views
1

je configurer mon principal personnalisé dans l'un des modules qui gère authentication_request. Ensuite, je l'ai défini HttpContext.User. Cela définit mes HttpContext.User et Thread.CurrentPrincipal. Maintenant, lorsqu'une erreur se produit et que la section customErrors contient "ResponseRewrite", Thread.CurrentPrincipal est réinitialisé au principal générique sur ma page d'erreur ASPX., Mais mon HttpContext.User contient toujours mon principal personnalisé. Cela ne se produit pas si la section customErrors contient "ResponseRedirect". Est-ce que ce comportement est attendu?ASP .NET: Thread.CurrentPrincipal est perdue lorsque customErrors contient redirectMode = "ResponseRewrite"

+0

Est-ce bien étiqueté, ne ressemble pas à une question ASP. ASP.NET? –

+0

oups. Juste mis à jour l'étiquette. – Eric

Répondre

0

Je soupçonne que le serveur tourne un thread séparé pour exécuter la page d'erreur. Vous pourriez être capable de le réinitialiser (Thread.CurrentPrincipal) en mettant le suivant dans votre Global.asax.

protected void Application_AuthenticateRequest(object sender, EventArgs e) { 
     Thread.CurrentPrincipal = HttpContext.Current.User; 
    } 

Cette ligne assurera que les deux sont synchronisés sur chaque demande à votre application.

Questions connexes