1

J'ai une application Silverlight qui va manquer sur Internet, disponible pour pratiquement tous ceux qui ont déjà vécu.Authentification RIA Services - Quel type? Prévenir les "copies"?

L'application utilise les services RIA pour manipuler des données dans une base de données sur le serveur.

L'application crée, lit, met à jour et supprime des données de différentes variétés, mais je souhaite uniquement que ces opérations se produisent à partir de l'application.

Cela amène deux questions:

  1. Y at-il une recommandation particulière pour ce type d'authentification à utiliser? Formulaires ou Windows?
  2. Existe-t-il un moyen d'empêcher quelqu'un de "lier" à l'application? C'est-à-dire, copiant le HTML de la page contenant, le collant dans leur propre page HTML sur leur machine locale et l'exécutant? L'objectif final serait de permettre uniquement l'exécution de l'application lorsqu'elle est intégrée dans une page demandée directement à partir de mon serveur et de mon serveur uniquement?

Répondre

2
  1. Si votre application est utilisée sur un réseau interne, puis l'authentification Windows est le meilleur. Sinon (comme c'est votre cas), utilisez l'authentification par formulaire. Silverlight empêche automatiquement les applications (à moins qu'elles ne s'exécutent avec une confiance élevée) d'accéder à des ressources sur Internet (services Web, HTML, etc.) qui ne proviennent pas du domaine d'origine de l'application, sauf si ce domaine a un fichier de stratégie inter-domaines dans sa racine. L'exécution de Silverlight empêche cela (pas le serveur), donc c'est une fonction de sécurité basée sur le client - pas basée sur le serveur. En ne disposant pas d'un fichier de régulation interdomaines sur votre serveur, votre application ne pourra communiquer avec vos services de domaine que lorsqu'elle sera exécutée à partir de votre serveur (comme vous le souhaitez). L'application s'exécutera, mais les appels à ces services échoueront.

Vous pouvez toujours faire un chèque de ce domaine l'application de son origine dans le code, et correspondre à un nom de domaine codé en dur si vous voulez éviter l'application en cours d'exécution à tous les autres domaines.

Hope this helps ...

Chris