Question

J'utilise beaucoup OpenID comme ici sur StackOverflow pour authentifier mes utilisateurs. Ce que je dois vraiment être en mesure de le faire bien est d'avoir ce travail dans tous les sous qu'OpenID-domaines de mon site.

Le site se comporte bien les mêmes que dans Kijiji que chaque région a ses propres sous-domaine

  • calgary.example.com
  • toronto.example.com
  • vancouver.example.com
  • etc

Lorsqu'un utilisateur se connecte « calgary » et les journaux plus tard dans « Toronto », ils seront obligés de « l'autorisation de donner » au fournisseur, entraînant ainsi un nouveau OpenID et entraînant également une nouvelle connexion.

Mon application « peut » avoir plusieurs OpenID est sous un seul compte, mais cela deviendrait lourd à gérer.

Est-il possible d'avoir le lien du fournisseur jusqu'au domaine de niveau supérieur et par la suite le travail dans tous les sous-domaines?

J'utilise DotNetOpenAuth.

La seule pensée que je vais avoir est de toujours forcer l'utilisateur à connecter à http://example.com puis utiliser les formulaires domain = ".example.com" d'authentification pour permettre la navigation à tous les sous-domaines.

Était-ce utile?

La solution

Oui. Définissez la propriété Realm sur le contrôle ASP.NET ou votre IAuthenticationRequest (si vous le faites par programme) à « https: //*.example.com ». Notez que le système peut être http ou https, mais doit match sans système est dans votre propriété ReturnTo, qui va (par défaut) le schéma utilisé dans la demande actuelle.

Notez toutefois que si vous avez des utilisateurs existants de Google, ce changement unique de votre royaume fera Google pour générer tout nouveaux identifiants pour vos utilisateurs, ils vont tous perdre l'accès à leurs comptes. Il est donc très important de décider et de garder un seul royaume pour tous les temps, ou vous devrez sauter à travers des cerceaux grands pour être en mesure de lier vos utilisateurs à leurs comptes plus tard, quand vous le changiez.

Mais ne vous inquiétez pas le caractère générique lui-même. Lorsque vous définissez https: //*.example.com que votre royaume, tous vos sites individuels qui correspondent à ce modèle auront tous les même identifiant Google

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top