簡體   English   中英

在.NET中創建和部署ActiveX控件

[英]Creating and deploying an ActiveX control in .NET

由於顯然沒有可以接受位圖貼的Flash控件 ,我想考慮自己編寫一個。 我寧願不使用Flash,所以我想使用.NET。

現在我相信可以在瀏覽器中下載和運行的本機代碼控件的正確術語是“ActiveX控件”。 所以我的問題是,我可以用.NET創建這樣的ActiveX控件嗎?

我在網上找到了一些教程,但他們都希望你在本地機器上安裝程序集,並注冊並信任它和訪問它的網站。

這對潛在的匿名互聯網用戶要求多一點,甚至對於內聯網用戶來說,另一種部署方法也是可取的。

我清楚地記得有些網站要求我下載這個或那個ActiveX控件。 在需要像Flash和Java這樣的瀏覽器插件的頁面上,有一些機制可以讓瀏覽器知道在哪里獲取該媒體類型的插件。

所以我的問題是雙重的:

  • 我可以創建一個可以在用戶的​​.NET瀏覽器中運行的控件嗎?
  • 我可以實現(半)自動交付的最佳方法是什么?

為了回應Sunny:

是的,許多JavaScript富文本編輯器允許您將鏈接的圖像粘貼到文本字段中,並且它將插入正確的<img>標記。 但是,這僅適用於已在網絡上有位置的圖像,我希望通過從剪貼板復制/粘貼任何隨機位圖來上傳新圖像。

如果你只使用IE瀏覽器,我喜歡IE托管控件的安全模型而不是Active-X,但是,截至2009年1月1日,微軟不贊成使用.NET(正在進行中)來擴展IE,因此XBAP沒問題,但不是在ActiveX控件或IE托管控件中。

更新7/13:Microsoft已發布有關實施進程內擴展的指南 ; 它仍然被棄用了。

編輯:無需調整注冊表,IE8將僅從Intranet或受信任區域加載.NET托管控件,因此對於一般的Internet使用,瀏覽器內完全信任訪問需要Active-X。

跟進Russ的帖子:Silverlight無法訪問剪貼板: http//silverlight.net/forums/t/13024.aspx

大多數IE托管的控制信息都在博客中,因此我使用: http//www.google.com/search? q = ie +hosted + control + site: msdn.com來查找它們。 以下是我發現特別有用的。

快速簡便的控制: http//blogs.msdn.com/mikechr/archive/2006/11/28/writing-a-simple-managed-control-under-ie.aspx

關於安全性的奇怪之處,除非“證據”是一個URL,程序集可能是可信的,但不是域,需要斷言來修復: http//blogs.msdn.com/carloc/archive/2006/11/01/代碼訪問安全承載式控制功能於ie.aspx

這是“固定”在3.5與清單。 要做到這一點很復雜,請參閱Shawnfa的.NET安全博客中使用清單以獲取.NET 3.5 Beta發布GA .NET 3.5的說明 Todd的Random Discovery博客還記錄了為托管控件創建清單步驟

我發現這對於設置安全性的知識庫文章非常有用,但您仍需要了解CAS: http//support.microsoft.com/kb/892466 在決定使用(.net)Active-X與IE托管控件時,這可能是主要考慮因素 - 也就是說,哪種安全模型最適合您和您的用戶。 我希望使用manifest會使IE托管控件像click-once一樣工作,要求用戶“信任”並且系統會創建正確的設置。 對於我的公司,我們使用可以自動為用戶設置安全性,因此我們選擇托管。

我從未想到的一件事是,如果我做了或者不必從(用戶)控件繼承ui-less控件。 這對我來說效果更好,但我不得不“隱藏”對象標簽所在的div。

如果編譯調試並且在加載控件后連接到IE以進行“托管”調試,則可以輕松調試控件。 如果您無法加載控件,請在融合程序集綁定查看器中查找信息: http//msdn.microsoft.com/en-us/library/e74a18c4.aspx以及如何打開IEHost跟蹤: http: //support.microsoft.com/kb/313892以調試加載過程。

務必對每個版本的程序集進行版本控制。 如果你不這樣做,那么IE會感到困惑,當下載緩存中的程序集不同但版本號與url引用的版本相同時,它將不會加載控件(gacutil / cdl清除.net下載緩存)

查找“在IE中托管的Winforms”。 幾年前我不得不做類似的事情,那就是我最終能夠取得一些成功的方式。

有兩點需要注意:正如您可能已經注意到的那樣,這些問題並不經常出現,因此示例有限。 (我不再有任何分享,抱歉)。 此外,.NET的安全模型與基於COM的ActiveX有很大不同,因此讓它在IE的不同安全區域中工作將會有點棘手。

如果你有能力使用Silverlight 2,我很可能會朝那個方向傾斜。

使用ActiveX僅限於IE和Windows。 最好看看谷歌文檔和/或Gmail,看看他們如何使用javascript處理粘貼您的電子郵件/在線文檔中的圖像。 適用於大多數瀏覽器和操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM