3

J'ai une application métier assez complexe écrite en ASP.NET et déployée sur un serveur hébergé. Le site utilise l'authentification par formulaire et une douzaine de rôles différents sont définis. Les employés et les clients sont les deux utilisateurs de l'application.Comment authentifier un client Windows Mobile en appelant des services Web dans une application Web

Maintenant, j'ai l'obligation d'élaborer un client Windows Mobile pour l'application qui permet à un ensemble très spécialisé des tâches à effectuer à partir d'un dispositif, par opposition à un navigateur sur un ordinateur portable. Le client veut augmenter la productivité avec cette mesure. Seuls les employés utiliseront cette application.

Je pense qu'il serait logique de réutiliser l'infrastructure de sécurité qui est déjà en place. Le client n'a pas besoin de capacité hors ligne. Mon idée est de déployer un ensemble de services Web dans un dossier du site existant auquel seul le nouveau rôle "service Web" a accès, et d'utiliser l'authentification par formulaires (à partir d'un client Windows Mobile 5/.Net 3.5).).

Je ne voyais this question et je suis conscient des limites que les formulaires d'authentification pose. Comme la sécurité n'est pas mon principal facteur de motivation (j'utilise le protocole SSL et que je peux restreindre l'accès par adresse IP), mais que j'utilise plutôt des comptes et des rôles d'utilisateurs existants, mon arbre de décision est également différent.

Puis-je faire cela, est-ce une bonne idée, et qu'il y a des exemples de code/références que vous pouvez me pointer vers?

Répondre

1

Je me suis retrouvé avec une combinaison de choses. Tout d'abord, l'authentification par formulaires ne fonctionne pas vraiment dans ce scénario, en raison des redirections que vous recevez lorsqu'un utilisateur n'est pas connecté ou que les informations d'identification sont incorrectes.

Parce que je veux utiliser les comptes d'utilisateurs de l'application Web, j'ai travaillé autour de cela en appelant simplement Membership.ValidateUser avant de traiter chaque appel de service sur le serveur.

Un utilisateur est invité à entrer un mot de passe et identifiant lors de la connexion au client. Je stocke les deux valeurs cryptées dans la classe proxy et les transmets de manière transparente à chaque appel en utilisant un en-tête, de sorte que l'application ne soit pas dérangée une fois que l'utilisateur est connecté, c.-à-d.) méthode de service (qui appelle seulement Membership.ValidateUser). J'utilise le CryptoApi sur le serveur et le côté client. Je comprends que les en-têtes d'hôte sont quelque peu obsolètes pour les applications de sécurité, mais comme j'utilise un cryptage fort ET SSL, c'est parfaitement adéquat.

+0

+1 pour revenir et fermer la boucle en répondant à votre propre question – ctacke

Questions connexes