J'ai essayé excessivement de mettre en œuvre une bonne solution d'identification ouverte dans asp.net mvc - et partout où je me tourne, il y a des morts absolues. DotNetOpenAuth est tout simplement trop gros et jusqu'à présent, je n'ai pas réussi à faire fonctionner même l'implémentation la plus simpliste, la plus basique et la plus sèche de celui-ci.
NerdDinner avait une implémentation prometteuse, mais il est impossible de retrouver tous les fichiers et scripts dépendants. Le site Web DotNetOpenAuth ne contient pratiquement aucune information utile non plus, malheureusement.
Quelqu'un connaît-il une approche simple pour simplement mettre en œuvre cela qui explique et détaille réellement comment cela fonctionne avec une sorte de sélecteur ? On en parle tellement, mais tout ce que je trouve pour cela est si difficile à travailler que cela dissuade toute mon équipe de même y penser.
Nous voulons l'implémenter de la même manière que le débordement de pile le fait déjà - en utilisant un sélecteur qui affichera une page de connexion si nécessaire. Je me rends compte qu'il y a beaucoup de code à faire pour cela, mais tout ne fait que saluer et louer dotnetopenauth, et rien ne l'enseigne vraiment. Même les exemples de projets ne s'ouvrent pas ou ne se compilent pas.
Cela ressemble à une merveilleuse bibliothèque - mais cela ne clique vraiment pas pour moi.
EDIT : C'est beaucoup plus logique maintenant qu'on m'a indiqué le bon endroit pour commencer. C'est beaucoup moins frustrant si vous éliminez tous les excès et savez exactement où se trouvent les bases.
2 réponses
Je suppose que vous avez probablement commencé avec les nouveaux modèles de projet DNOA qui contiennent BEAUCOUP de code et un schéma de base de données assez complexe, mais la plupart n'est nécessaire que pour les fournisseurs OAuth et OpenID, et non pour les parties de confiance. Cela peut être un peu écrasant lorsque vous essayez de comprendre comment l'intégrer dans une solution existante.
Je recommanderais de ne pas commencer avec le modèle de projet, mais avec l'exemple de projet que vous pouvez trouver dans le dossier Samples/OpenIdRelyingPartyMvc. Pour même minimiser cela, tout ce dont vous avez besoin pour un scénario très basique (qui serait par exemple juste de pouvoir afficher l'URL OpenID de l'utilisateur qui vient de se connecter) est dans la méthode Authenticate
du UserController
. C'est juste quelques lignes.
Dans mon cas, après avoir démarré très rapidement sur la base de cet exemple, j'ai approfondi un peu le code généré par le modèle de projet, appris et appliqué quelques améliorations utiles, mais toujours très légères et simples, et cela fonctionne très bien pour moi jusqu'à présent .
BTW : Je pense que DNOA est non seulement parfaitement conçu et le code bien documenté, mais c'est aussi l'une des bibliothèques open source les mieux prises en charge que j'ai jamais utilisées. Je parie qu'Andrew laissera un commentaire ici dans moins de 24 heures ;-)
Essaye ça. http://www.west-wind.com/Weblog/posts/899303. aspx.
Dotnetopenauth comprend un exemple d'application asp.net mvc qui montre comment cela fonctionne. Je l'ai évalué avant de passer à Spring mvc, mais j'ai pu développer un POC fonctionnel basé sur la logique de l'exemple de code. Si je me souviens bien, votre vue comprend une zone de texte qui soumet l'openid au contrôleur et le contrôleur utilise l'API dotnetopenauth pour vous rediriger vers le fournisseur d'identifiant ouvert pour l'authentification. La redirection inclut l'URL de votre site via la chaîne de requête afin que le fournisseur d'identifiants ouverts puisse vous rediriger une fois que vous vous êtes authentifié. Votre contrôleur utilisera à nouveau l'API dotnetopenauth lorsque l'utilisateur final sera redirigé vers votre site et que vous pourrez extraire l'identifiant ouvert. Je sais que cela explique seulement ce que vous savez peut-être déjà, mais comme je l'ai dit, je n'ai eu aucun problème à le faire fonctionner. poste ton code. J'ai codé dans une machine virtuelle et je ne peux plus y accéder mais je le télécharge à nouveau maintenant. cela ressemble à du bon matériel de blog.
Questions connexes
De nouvelles questions
.net
N'utilisez PAS pour les questions sur .NET Core - utilisez plutôt [.net-core]. Le framework .NET est un framework logiciel conçu principalement pour le système d'exploitation Microsoft Windows. Il comprend une implémentation de la bibliothèque de classes de base, du Common Language Runtime (communément appelé CLR), du Common Type System (communément appelé CTS) et du Dynamic Language Runtime. Il prend en charge de nombreux langages de programmation, notamment C #, VB.NET, F # et C ++ / CLI.