2010-10-17 6 views
0

Si j'ai défini le délai d'authentification des formulaires à 30 jours (en minutes) et que j'ai défini le délai d'expiration de la session à 5 minutes et j'utilise un cookie pour conserver les différentes variables de session. est-ce que asp.net ou IIS émet toujours toujours un 302 et redirige vers la page de connexion lorsque la session expire? (Faire un débogage http met un message "objet déplacé ici"asp.net rediriger vers la page de connexion

Je vérifie la session dans toutes les pages_init s sur toutes les pages, car elles héritent toutes d'une classe Page commune, si je trouve une session défectueuse je charge les variables de session du cookie mentionné ci-dessus.

Ma question est, qui ou qu'est-ce qui redirige vers la page de connexion !!?

J'ai testé cela sur IIS6 & IIS7 avec des résultats identiques.

J'ai mis des points d'arrêt sur chaque instruction de redirection unique et ils n'ont jamais été déclenchés, et j'ai donc conclu que quelque chose d'autre est en train d'émettre ces redirections.

debbuging en outre révélé ce qui suit:

Une première possibilité exception de type 'System.Threading.ThreadAbortException' est produite dans mscorlib.dll Une exception de type 'System.Threading.ThreadAbortException' est produite dans mscorlib.dll mais n'a pas été traité dans le code d'utilisateur

Mais je suppose que c'est normal car il émet une redirection de toute façon.

Répondre

1

C'est l'authentification par formulaire qui fait cela. Si vous n'êtes pas authentifié, l'authentification des formulaires vous enverra au loginurl.

voir: http://msdn.microsoft.com/en-us/library/ff647070.aspx

La raison pour laquelle vous ne pouvez pas déboguer ce que prend la demande d'authentification des formulaires avant qu'il ne soit à votre code.

Il est également couvert à la fin de this article

Modifier

A partir du second lien ci-dessus:

scénario

Problème: Les formulaires authentification peuvent expirer avant la Valeur d'attribut timeout définie dans le fichier de configuration Si le ticket d'authentification des formulaires est man ually généré, la propriété de délai d'expiration le ticket remplacera la valeur qui est définie dans le fichier de configuration. Par conséquent, si cette valeur est inférieure à la valeur dans le fichier de configuration, le ticket d'authentification de formulaires viennent à échéance avant le fichier de configuration valeur d'attribut de délai d'attente et vice-versa. Par exemple, supposons que l'attribut de délai d'expiration est défini sur 30 dans le fichier Web.config et la valeur d'expiration du ticket est définie sur 20 minutes. Dans ce cas, le ticket d'authentification des formulaires expirera après 20 minutes et l'utilisateur devra se reconnecter après cela.

+0

mais ne devrait-il pas être authentifié puisque j'utilise une valeur de délai d'attente BIG? Comment puis-je contourner cela? –

+0

Essayez d'augmenter le délai d'expiration de la session, l'authentification par formulaires utilise la session et pas seulement le cookie. –

+0

problème, nous obtenons des variables de session nulles pour des raisons aléatoires et par conséquent le cookie que j'utilise pour persister les variables de session –

Questions connexes