ASP.NET: Comment faire pour obtenir l'objet FormsAuthenticationTicket lorsque l'authentification expiré
Je suis en train de vérifier l'Expiration de la propriété de l'utilisateur actuel FormsAuthenticationTicket pour voir si l'authentification de l'expiration de la période. Mais lorsque le délai est expiré, je ne suis jamais en mesure d'obtenir suffisamment d'informations à même de créer le ticket pour le vérifier. J'ai essayé ceci:
FormsIdentity id = (FormsIdentity)User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
Mais l'Utilisateur est nulle lorsque l'authentification de l'expiration de la période. Donc cela ne marchera pas. J'ai essayé ceci:
HttpCookie authCookie = context.Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
Mais les Formes Cookie est allé lors de l'authentification d'un délai de signification authCookie sera nulle. Si cela ne fonctionne pas.
Est-il de toute façon de réellement obtenir la FormsAuthenticationTicket de l'objet lors de l'authentification de l'expiration de la période? Il doit y avoir, parce qu'il y a un "Expiré" propriété de l'objet. Ce qui me manque?
Grâce.
Vous devez vous connecter pour publier un commentaire.
L'expiration d'un cookie est à gauche de l'en-tête par le navigateur client. Donc, il n'y a pas de code-behind de la méthode de récupérer depuis le client ne sera jamais vous donner. Il pourrait être possible d'utiliser le javascript de cookies pour obtenir les premières données de cookie et de le mettre en post-tête ou un appel AJAX pour un certain but, mais je crois que le javascript mécanisme des cookies a la même date d'expiration des restrictions, comme le navigateur. Expiré cookies ne sont plus valides, et ne sont donc pas accessibles.
En supposant que le navigateur (IE uniquement), ne pas enlever l'expiration d'un cookie, ASP.Net apparaît à bande, à l'expiration de l'authentification billet de la Demande.Collection de Cookies. Il est toujours là dans la Demande.L'en-tête["Cookies"], mais n'est pas disponible dans la collection de cookies. Je crois que ce qui se passe quelque part entre le "BeginRequest" et "AuthenticateRequest" des événements. Je suis en cours d'exécution dans la même question et je suis à explorer davantage moi-même.