J'ai un projet construit avec Awesomium intégré dans .NET et il nécessite l'utilisation de Flash. Flash génère des erreurs de sécurité en essayant d'accéder au contenu local (lecteur vidéo) et la ou les solutions proposées par Awesomium n'ont pas encore été portées sur l'encapsuleur .NET. Je me demande s’il existe un moyen assez simple d’inclure un serveur Web d’exécution dans l’application où je peux simplement choisir un port arbitraire et créer un serveur localhost lors de l’exécution de l’application et y pointer mon navigateur Awesomium.
Des idées?
NHttp fournit un serveur HTTP avec analyse de la requête, mais vous devez lancer vos propres réponses. Il y a aussi Kayak et le propre cadre HttpListener .
Nancy est une infrastructure MVC complète, prend en charge la syntaxe ASP.NET Razor et propose de nombreuses options de configuration et d’extensibilité. Il existe un paquet self-Host disponible sur nuget.
Si vous avez juste besoin de servir un fichier SWF et des données JSON, le premier ensemble serait probablement plus simple à intégrer - si vous devez afficher des pages Web complètes, je vous recommanderais Nancy.
Voici une autre alternative que j'ai écrite l'année dernière et qui m'a bien servi.
EmbedIO: https://github.com/unosquare/embedio
Je l'utilise principalement pour créer des services RESTful sur le Raspberry Pi (soft-float) . Code mis à jour pour Mono 3.10, prise en charge de WebSockets et traitement asynchrone des demandes.
Le forfait NuGet est également disponible.
Je suppose que c'est Windows .. Vous n'avez pas (ou ne devriez pas) utiliser un serveur Web. Si vous créez un fichier cfg, peu importe comment il s'appelle, dans ce répertoire:
% appdata%\Macromedia\Flash Player # Sécurité\FlashPlayerTrust
Et mettez une seule ligne contenant le chemin du dossier que vous voulez approuver, puis Flash chargera les ressources locales sans problèmes de sécurité. Vous pouvez supprimer le fichier à nouveau à la fermeture (c'est ce que nous faisons).
Même principe sur d'autres plates-formes, seul l'emplacement de ce dossier FlashPlayerTrust est différent.
Pour l'auto-hébergement ASP.Net MVC (et autres) Vous pouvez utiliser OWIN implémentations:
Open Web Interface pour .NET (OWIN) définit une abstraction entre les serveurs Web .NET et les applications Web. OWIN dissocie l'application Web du serveur, ce qui en fait l'outil idéal pour l'hébergement autonome d'une application Web dans votre propre processus, en dehors d'IIS.
Ici vous pouvez trouver un exemple simple avec WebAPI.
Si vous avez besoin d'un peu d'ASP.NET côté serveur, utilisez Mono.WebServer et Mono.WebServer.XSP.
Ici:
https://github.com/mono/xsp/tree/master/src
Sinon, vous pouvez utiliser uhttpsharp:
https://github.com/raistlinthewiz/uhttpsharp
Ou vous pouvez utiliser "serveur web" à partir de codeplex:
http://webserver.codeplex.com/
Ou plus lourd, Cassini:
https://cassinidev.codeplex.com/
Il semble que vous puissiez lire du contenu flash local tant que le contenu est configuré pour être approuvé.
Qu'est-ce que la sécurité de Flash Player pour le contenu local?
Le contenu local peut être désigné comme sécurisé pour ne pas être interrompu par cette boîte de dialogue et pouvoir fonctionner comme prévu. Cette confiance doit être explicitement désignée de deux manières.
En exécutant un programme d'installation de logiciel dans lequel le contenu de l'application que vous installez est déjà enregistré comme fiable. Lorsque vous exécutez un programme d'installation, vous autorisez explicitement l'installation d'un programme sur votre ordinateur. Ainsi, l'éditeur de l'application peut automatiquement enregistrer le contenu avec Flash Player comme fiable.
En ajoutant du contenu ou des répertoires spécifiques à une liste de fichiers sécurisés, via le panneau Paramètres de sécurité globaux du gestionnaire de paramètres de Flash Player. Dans ce panneau, vous pouvez désigner un contenu spécifique ou même des répertoires comme fiables en enregistrant manuellement les emplacements avec Flash Player. Pour obtenir des instructions pas à pas sur la manière de désigner un contenu comme fiable, voir la note technique: Comment puis-je laisser le contenu Flash local communiquer avec Internet?
Si vous souhaitez tirer parti de la capacité de HTTP2 à diffuser du contenu efficacement, vous pouvez également utiliser GRPC pour intégrer un serveur HTTP2.
Voir: