Je construis une nouvelle application ASP.NET MVC (en C#) et l'une des exigences est de créer une nouvelle base de données de membres. Pour cela, nous aurions besoin de rôles pour gérer les différents types de membres et de profils pour gérer les métadonnées supplémentaires attachées à chaque membre. Jusqu'ici tout va bien, il suffit d'utiliser le MembershipProvider standard, RoleProvider et ProfileProvider fournis dans le cadre du .NET Framework.Comment autoriser plusieurs méthodes d'authentification dans ASP.NET?
Cependant, le problème est que je voudrais autoriser différentes méthodes d'authentification. Je souhaite que les comptes et les informations d'identification de connexion aient une relation un-à-plusieurs (un compte peut avoir un certain nombre d'informations d'identification de connexion). Un utilisateur, par exemple, peut avoir un compte OpenID et ActiveDirectory associé à son compte. Cependant, après quelques expériences, nous avons opté pour l'itinéraire MembershipProvider (expliqué comment cela a été réalisé comme une réponse ci-dessous).
Ma question est la suivante: comment les gens ont-ils déjà fait cela et comment les gens me suggèrent-ils de l'approcher? Il semble être quelque chose qui est réalisé sur un certain nombre de sites, mais une recherche sur ce site ne retourne rien de solide à jouer avec.
EDIT: Après avoir regardé autour pendant une bonne période d'heures du jour au lendemain et ce matin - je ne suis toujours pas convaincu que l'abattage d'un seul MembershipProvider aurait été l'option la plus facile. Avoir plusieurs MembershipProviders donne-t-il le même effet?
BOUNTY EDIT: Sans réponse, je suppose qu'il n'y a pas de solution plus optimale que celle que j'ai affichée comme réponse. Est-ce vraiment le cas? J'offre une prime pour essayer de voir si quelqu'un a d'autres idées à ce sujet et s'il y a de meilleures alternatives.
BOUNTY ACCEPT EDIT: Je pense que WIF est la réponse acceptée ci-dessous, pour une version .NET 4 et peut-être d'autres versions car elle fonctionne probablement avec 3.5. Autre que cela, peut-être un MembershipFovider bouché ou adapté peut encore être pertinent.
Wow, je commençais juste à taper ma propre réponse avec WIF comme vous l'avez posté. J'utilise une combinaison de SQL et Active Directory pour authentifier mes utilisateurs en utilisant plusieurs méthodes différentes. WIF est cool, car une fois que votre STS (page d'ouverture de session) est configuré, il émet des "jetons" aux utilisateurs sous la forme de cookies. Les jetons identifient les utilisateurs et spécifient des chaînes d'informations (réclamations) sur les utilisateurs. Le STS déconnecte l'authentification de la logique de votre application. Les revendications de l'utilisateur peuvent être lues par programmation ou vous pouvez utiliser une classe spéciale 'ClaimsAuthorizationManager' pour gérer l'accès. –
WIF semble certainement résoudre le problème de ce que je peux dire, mais ne peut pas tout à fait sur son prix. Il n'y avait aucune mention apparente du coût (http: // msdn.microsoft.com/en-us/security/aa570351.aspx), mais ils échappent à être disponible au téléchargement pour moi d'évaluer. Si ce n'est pas gratuit (ou disponible avec le serveur AD non-plus récent - je peux avoir quelques problèmes.) Cependant, toujours une très bonne réponse, donc +1 – Amadiere
@Amadiere WIF va être publié avec le framework .net quand 4.0 est sorti en avril cette année, et il est bien sûr gratuit, il est déjà disponible en téléchargement, et je l'utilise tous les jours et je n'ai trouvé aucun problème avec celui-ci –