2010-03-05 61 views
3

我正在使用以ASP.NET編寫的Intranet網站,並且需要能夠訪問用戶計算機上安裝的DLL。如果我在本地託管該網站,但是當我嘗試從另一臺機器訪問它時,它可能無法正常工作。我意識到這可能是一個危險的工具使用,但如果你有這樣做的有效的商業目的,是否有可能?從ASP.NET頁面啓動.NET DLL

我環顧四周,可能有一種方法來使用JavaScript來做到這一點,但我想知道是否還有其他東西。

爲了讓本地工作,我不得不AspCompat添加到頁面,以便第一喜歡的樣子:

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

任何幫助將不勝感激。

+6

我不能爲了我的生活找出什麼有效的用例可以接受,以允許這個巨大的安全漏洞。 – Gord 2010-03-05 17:46:11

+0

它應該不可能。任何現代的Web瀏覽器都應該完全使用JavaScript進行沙盒處理。你必須有一個Java或XBAP的簽名applet。這是什麼原因? – 2010-03-05 17:49:33

+0

這是做這件事的一個有效的商業原因。我有一個基本的會計和信用卡處理的ASP.NET應用程序。我想將信用卡部分卸載到另一個軟件中,因此我不需要擔心持卡人數據安全問題,更重要的是可以避免經歷所需的PA-DSS審計,該審計的費用爲$ 10 + k。我正在與一家擁有使之成爲可能的軟件的公司合作,但您需要調用他們的DLL來讓他們的軟件彈出並處理事務。這是一個很好的解決方案,因爲他們的應用程序運行在IE中,你可以設計它,並且正是我所需要的。 – markiyanm 2010-03-05 18:32:51

回答

4

即使有一個正當的理由,我會找到另一種方式,比如讓他們下載一個.exe。這樣想想吧。即使您真的需要將您的汽車租借給某人,您是否可以將它放在商場裏,並且每天都用鑰匙打開,直到他們能夠拿起它爲止?因爲如果你找到一種方法來改變它們的安全性來允許這個.dll執行的話,那就是你所要做的。

3

我認爲你有兩個選擇:

1:獲取用戶機器的DLL的一個副本,包括到您的asp.net web應用程序,通過添加對它的引用。請記住,該DLL將從您的Web服務器機器執行,因此無法訪問用戶計算機上的本地資源,超出了Web瀏覽器提供的資源。

2:重寫你的web應用到桌面應用程序(Windows窗體或WPF),以及通過的ClickOnce或XBAP等部署

我不認爲JavaScript就允許你來調用客戶端的dll本地計算機,除非你已經有一個ActiveX插件或安裝的東西。

+0

嗯...所以它聽起來像一個ActiveX可能是去這裏的方式。謝謝紅良。 – markiyanm 2010-03-05 21:31:17