2009-09-10 11 views
0

J'essaie d'utiliser forms.signout mais parfois il ne se déconnecte pas de l'utilisateur et il peut toujours naviguer sur le site.ASP.NET MVC FormsAuthentication.SignOut ne fonctionne pas

Comment puis-je résoudre ce problème? J'ai également configuré l'authentification de formulaires web.config, mais cela ne fonctionne toujours pas. J'utilise FormsAuthentication pour authentifier un utilisateur en passant par sa connexion.

Merci!

Répondre

1

Je ne sais pas quelle est la cause, mais quelques choses que vous pourriez envisager/essayer

  • sont-ils réellement en mesure de visiter encore des pages générées par le serveur ou sont-ils juste retourner à cache localement versions? Que se passe-t-il lorsqu'une publication dont le code est vérifié pour vérifier si elle est authentifiée fonctionne ou échoue-t-elle? Je pense que la signification plus tard, ils sont déconnectés mais affichant des versions en cache de la page connectée dans laquelle cas vous voulez indiquer au client de ne pas mettre en cache les pages en utilisant pour les instances:

    Response.Cache.SetExpires (DateTime.UtcNow. AddMinutes (-1)); Response.Cache.SetCacheability (HttpCacheability.NoCache); Response.Cache.SetNoStore();

  • Vous pouvez essayer régler manuellement le cookie expireront mais c'est un hack

    FormsAuthentication.SignOut(); Context.Response.Cookies.Item (FormsAuthentication.FormsCookieName) .Expires = Date.Now; Response.Redirect ("~/Somewhere.aspx");

+0

Par exemple, le site Web a un menu de navigation qui n'est affiché que lorsqu'un utilisateur est authentifié. Et j'ai aussi un Request.IsAuthenticated pour générer des contenus restreints (tels que le menu). Lorsque l'utilisateur se déconnecte, le menu est parfois encore visible. Si j'essaie d'accéder à une page restreinte, je serai redirigé vers la page de connexion, mais je ne pense pas qu'il soit bon de voir ce contenu en cache, tel que le menu. – AndreMiranda

0

L'utilisateur possède-t-il le domaine (ou un domaine parent) dans ses sites de confiance ou ses sites intranet? J'ai récemment rencontré quelques problèmes où un utilisateur est authentifié, mais anonyme dans des circonstances où cela est vrai. Dans mon cas, il se peut aussi qu'un site parent ait été configuré à un moment donné pour permettre l'authentification intégrée à Windows. J'ai enlevé depuis enlevé cela, mais il n'a pas semblé aider le problème. Je n'ai pas encore redémarré IIS pour voir si cela aurait un effet. J'ai eu recours à vérifier à la fois que l'utilisateur est authentifié et non anonyme pour s'assurer que les parties appropriées de la vue sont rendues. C'est en fait plus précis même si mon code de connexion devrait éviter d'avoir une connexion anonyme.

+0

@tvanfosson - Comment vérifier si un utilisateur n'est pas anonyme? – AndreMiranda

+0

Request.LoginUserIdentity.IsAnonymous doit être false. – tvanfosson

Questions connexes