2011-11-05 2 views
5

Je travaille sur une solution dans laquelle un projet WPF utilise un DataService WCF situé dans un autre projet ASP .NET pour accéder aux données.
Je dois fournir un niveau de sécurité qui garantit que seuls les utilisateurs authentifiés peuvent accéder au service. Ayant surfé sur le net je me suis cassé la tête en essayant d'accomplir cela. Quelle est la bonne façon de mettre en œuvre cela?Sécurité du service de données WCF dans une application WPF

+0

La création de jetons utilisateur pourrait vous aider .. Votre question est intéressante :) –

Répondre

2

Je l'ai fait dans le passé où la méthode Login de la WCF créerait un objet utilisateur, attribuer à l'utilisateur objet d'un jeton (dans mon cas, il était un GUID), et le stocker en interne sur le serveur WCF dans une liste AuthenticatedUsers . Tout autre appel WCF nécessitait le jeton en tant que paramètre. Il vérifierait si un utilisateur existait dans la liste AuthenticatedUsers avec ce jeton, et retournerait une erreur si le non utilisateur avec ce jeton existait. Un avantage supplémentaire est que je saurais toujours qui a fait l'appel WCF sans avoir besoin de passer un identifiant d'utilisateur.

J'ai également stocké un LastActivity DateTime avec les objets Utilisateur sur le serveur. Chaque appel WCF actualiserait cette valeur, et en fournissant la liste AuthenticatedUsers sur le serveur WCF avait au moins une valeur, un temporisateur a couru sur le serveur qui vérifierait la valeur AuthenticatedUsers LastActivity et supprimerait l'utilisateur s'ils avaient été inactifs pendant plus de 20 minutes.

Questions connexes