2010-03-05 5 views
3

Je travaille avec un site intranet écrit en ASP.NET et doit pouvoir accéder à une DLL installée sur l'ordinateur de l'utilisateur. Je peux le faire fonctionner si j'héberge le site localement mais quand j'essaye d'y accéder d'une autre machine cela ne fonctionne pas. Je me rends compte que cela pourrait être un outil dangereux à utiliser, mais si vous avez un but commercial valable pour le faire, est-ce possible?Lancer une DLL .NET à partir d'une page ASP.NET

J'ai regardé autour et il pourrait y avoir un moyen d'utiliser JavaScript pour le faire, mais je me demande s'il n'y a rien d'autre.

Pour le faire fonctionner je devais ajouter localement AspCompat à la page de sorte que le premier ressemble comme:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" AspCompat="True" %> 

Toute aide serait grandement appréciée.

+6

Je ne peux pas pour la vie de moi comprendre quel cas d'utilisation valide serait acceptable pour tenir compte de cet énorme trou de sécurité béante. – Gord

+0

Cela ne devrait même pas être possible. Tout navigateur Web moderne doit avoir JavaScript entièrement en sandbox. Vous devriez avoir une applet signée de quelque sorte, Java ou XBAP. Quelle est la raison pour ça? –

+0

Voici une raison commerciale valable pour ce faire. J'ai une application ASP.NET qui fait la comptabilité de base et le traitement de carte de crédit. Je voudrais décharger la partie de carte de crédit à un autre logiciel ainsi je n'ai pas besoin de s'inquiéter de la sécurité de données de détenteur de carte et d'éviter surtout l'audit de PA-DSS requis qui coûte 10 + k $. Je travaille avec une entreprise qui a un logiciel qui rend cela possible, mais vous devez invoquer leur DLL pour faire apparaître leur logiciel et gérer la transaction. C'est une bonne solution parce que leur application fonctionne dans IE et vous pouvez le styler et c'est exactement ce dont j'ai besoin. – markiyanm

Répondre

4

Même avec une raison valable, je trouverais un autre moyen, comme les faire télécharger un fichier .exe. Pense-y de cette façon. Même si vous aviez VRAIMENT besoin de prêter votre voiture à quelqu'un, la laisseriez-vous au centre commercial déverrouillé avec les clés dans le contact toute la journée jusqu'à ce qu'ils puissent le ramasser? Parce que c'est ce que vous aurez si vous trouvez un moyen de changer leur sécurité pour permettre cette exécution de .dll.

3

Je pense que vous avez deux options:

1: obtenir une copie du dll de la machine de l'utilisateur et inclure dans votre application web asp.net, via l'ajout d'une référence. Gardez à l'esprit que cette DLL sera exécutée à partir de vos machines serveur Web, donc ne peut pas accéder aux ressources locales sur les machines de l'utilisateur au-delà de ce qui est disponible à partir d'un navigateur Web.

2: réécrire votre application web dans une application de bureau (formes de fenêtres, ou WPF), et le déployer via ClickOnce ou XBAP etc.

Je ne pense pas que Javascript vous permettra d'invoquer un dll client ordinateur local, à moins bien sûr que vous avez déjà un plugin ActiveX ou quelque chose d'installé.

+0

Hmmm ... donc ça sonne comme un ActiveX pourrait être le chemin à parcourir ici. Merci hongliang. – markiyanm

Questions connexes