2009-06-22 6 views
3

J'utilise Dotnetopenid pour la connexion.Comment se déconnecter de Relying Party?

Je suis des journaux dans mon application en utilisant le fournisseur dotnetopenid supposons google.

Au moment de la déconnexion, je termine la session de l'utilisateur de mon application par FormsAuthentication.SignOut(); mais si je ne ferme pas le navigateur et que je me connecte en utilisant google, il ne me demandera pas de mot de passe et me posera sur une page sécurisée de mon application.

En outre, si je vais essayer gmail.com, il va directement me compte d'utilisateur sans demander id-mot de passe. Comment puis-je me déconnecter complètement de mon application et de google aussi?

grâce à l'avance

Répondre

2

Je pense que vous confondez la partie utilisatrice et le fournisseur OpenID. En utilisant StackOverflow comme exemple, SO est la partie utilisatrice et d'autres sites (par exemple Google) sont les fournisseurs OpenID.

La partie utilisatrice (par exemple SO) n'a pas son mot à dire lorsque le fournisseur OpenID (par exemple Google) choisit d '«oublier» l'utilisateur à ses propres fins.

EDIT: Je ne connaissais pas l'extension PAPE. Cependant, si je comprends bien, cela ne fournit pas un moyen pour le RP de dire à l'OP, "Sur votre fin, oubliez l'authentification de cet utilisateur", qui est ce que je pense que Rehan veut. Cela permet simplement au RP d'exiger une autre authentification pour les besoins du RP.

Je ne vois toujours aucun moyen (par exemple) de déconnecter un utilisateur Google de Gmail après que SO l'ait déconnecté.

+2

Matt, en fait le RP * ne * ont une certaine influence sur OP si un re-authentifie l'utilisateur via l'extension PAPE: http: // Openid. net/specs/openid-provider-authentification-extension-de-politique-1_0.html # anchor8 –

+0

Bonjour, Mattew J'ai corrigé ma question. Maintenant, donnez-moi la réponse à la question. –

+0

Bonjour Matthew et Andrew, Il n'est pas possible de se déconnecter de OpenID Provider (par exemple, Google) de mon application (RP). J'espère qu'il doit y avoir une solution de contournement. –

2

Il semble que ce que vous cherchez est une fonctionnalité de déconnexion qui permettra à la partie utilisatrice de se déconnecter de l'utilisateur en même temps.

DotNetOpenId n'offre pas cette fonctionnalité car OpenID n'a pas cette fonctionnalité dans sa spécification. Il n'y a tout simplement aucun moyen de le faire maintenant. La communauté OpenID a eu des conversations sur la spécification d'une telle fonctionnalité, mais jusqu'à présent, elle n'est pas là. Si et quand OpenID ajoute une telle fonctionnalité à sa spécification, DotNetOpenId ajoutera le support pour cela.

+0

Merci pour la réponse claire. Si OpenID n'a pas cette fonctionnalité, mais que je veux mettre en œuvre une déconnexion forcée, existe-t-il une solution de contournement? Beaucoup de sites Web parlent de cookie à court terme, mais comment je l'implémente. –

+1

Aucun type de cookie au RP ne vous aidera à déconnecter l'utilisateur de l'OP. Une solution de contournement consiste à reconnaître le point de terminaison OP de l'OP avec lequel l'utilisateur s'est connecté et disposer d'une table de conversion qui traduit cette URL en une URL que vous pouvez rediriger pour forcer la déconnexion de l'OP. Par exemple http://google.com/signout –

1

J'ai eu le même problème. Tellement essayé ceci ..... quand je me suis déconnecté de mon site Web qui utilise dotnetopenid, j'ai également fait un appel au lien de déconnexion de gmail suivant https://mail.google.com/mail/?logout&hl=en. Cela m'a déconnecté de Gmail aussi.

1
+0

cela fonctionne pour moi si je devais déconnecter un utilisateur de compte Google dans mon contrôle webrower –

+0

PS: si vous cliquez sur le lien, vous vous déconnecter de votre compte (juste pour paresseux ceux qui vont cliquer et se déconnecter instantanément de leur compte) –

Questions connexes