2012-08-17 2 views
2

Tout d'abord, j'ai jeté un coup d'œil à tous les sujets connexes sur elle à propos de ce problème. Cependant, aucun d'entre eux n'a réussi à répondre pleinement à ma question.Authentification pour une application de bureau

Je travaille actuellement sur une application de bureau, codé en C#/WPF, qui nécessite une connexion MySQL à la fois pour l'authentification et le stockage des listes personnalisées de l'utilisateur, etc.

Cependant, le problème est que permettant apparemment tout le monde de se connecter à distance à MySQL db n'est pas une bonne pratique. En outre, mon hôte actuel nécessite que les adresses IP soient en liste blanche avant de pouvoir se connecter à la base de données.

Quelles sont mes options à ce sujet?

Nous vous remercions à l'avance

Répondre

4

Vous devriez regarder dans la création d'un service Web (SOAP), http web-api (REST) ​​ou d'un autre middleware stockage abstrait vos données.

Cela a les avantages suivants:

  • vous permet de déplacer une grande partie de la logique métier de votre application de bureau et en articles milieu
  • vous permet de garder la logique métier sur sql qui pourrait être goulot d'étranglement
  • Vous permet de mettre à jour votre logique métier sans redistribuer votre application de bureau (plus facilement si vous n'avez pas le contrôle direct de tous les postes de travail).
  • Vous permettant de contrôler l'authentification (de nombreux serveurs Web ont leurs propres modules, méthode d'authentification). Votre application contrôle l'accès et l'accès au stockage sous son propre compte de service.
  • vous permet de compléter modifier votre stockage de données (disons que dans l'avenir vous stockez certains dans sql, certains dans MongoDB, certains dans le stockage en nuage -. Encore une fois, sans avoir à mettre à jour tous vos postes de travail
  • vous permet d'échelonner vos extrémités avant et même échelle peut-être votre stockage back-end (par exemple, lecture/écriture des répliques DB)

Si vous travaillez déjà avec C#, devrait alors être un bon ajustement de la nouvelle MVC4 web-api. En savoir plus ici:

http://www.asp.net/web-api

Si vous suivez cette route, vous pouvez contrôler l'accès à votre service et permettre à votre service d'accéder à la base de données via des informations d'identification dans une chaîne de connexion ou si vous utilisez IIS, les informations d'identification du pool d'applications mappées sur votre site.

Si vous expédiez votre application de bureau (vous n'hébergez pas la base de données), vous pouvez également héberger votre propre API si vos clients ne veulent pas installer/gérer IIS.

Enfin, si votre mysql est en ligne, votre middleware pourrait être dans le nuage (bleu azur, etc ...)

+0

informations brillantes, aidé beaucoup, merci – Alex

2

Créer un service Web, comme avec WCF ou MVC API Web où votre application peut passer à travers leur informations d'identification et authentifier. Je recommande https pour la sécurité du transport.

Questions connexes