J’ai créé une application Web ASP.NET pour un client qui utilise l’authentification par formulaire ASP.NET par défaut. Ils demandent maintenant une application de bureau (WinForms) qui fonctionne “avec” l’application Web. J’ai créé les services Web permettant d’accéder aux données de l’application Web et de les intégrer à l’application de bureau. Cela fonctionne très bien .. mais le même niveau de sécurité et d’access aux données doit être le même, en fonction des rôles déjà stockés dans l’application asp.net.
Il est donc temps de faire fonctionner l’authentification entre les deux applications. Je souhaite tirer parti de l’authentification asp.net en demandant une connexion lorsqu’un utilisateur ouvre pour la première fois l’application WinForms et appelle éventuellement un service Web pour authentifier l’utilisateur, obtenir le rôle et le profil de l’utilisateur.
Je suis sûr que cela a été fait et / ou posé une question .. Je ne trouve tout simplement pas la question / réponse dans SO.
Premièrement: utilisez WCF pour vos services Web. C’est un meilleur framework que les anciens services ASMX.
Deuxièmement: WCF peut utiliser les mêmes classes RoleProvider et MembershipProvider que celles utilisées par votre application ASP.NET. C’est un simple commutateur de configuration. Utilisez-les tous les deux et votre service Web requirejs les mêmes informations d’identification que l’application Web.
Et c’est à peu près tout.
Pour plus d’informations, voir:
Implémentation d’un fournisseur de rôle
Implémentation d’un fournisseur d’adhésion
Comment: utiliser le fournisseur d’appartenance ASP.NET
Pour append à la réponse de Randolpho: une autre fonctionnalité qui pourrait plaire aux utilisateurs est la possibilité de sauvegarder leurs informations d’identité plutôt que de les entrer à chaque démarrage de votre application. Vous pouvez utiliser l’API Credential Management pour cela, comme décrit dans cette réponse .