亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 編程應用 > 正文

.NET應用自動部署窗體技術詳解(1)

2019-11-18 12:09:51
字體:
來源:轉載
供稿:網友

  .NET框架提供了一些新的工具簡化.NET胖客戶端程序的部署,本文闡述了.NET自動部署技術的基礎知識,以及防止用戶錯誤下載黑客程序和病毒代碼的安全機制。
  .NET的自動部署技術構造在.NET框架之中,它使得應用程序能夠通過HTTP連接從遠程服務器按需下載程序集。有了這個功能,我們可以把胖客戶端應用程序發布到一個Web服務器,確保用戶下一次使用應用程序時總是自動得到程序的最新版本。設想一下吧:再也不必用CD來發布升級軟件,再也不必在電話中向用戶反復解釋因版本沖突引起的問題!
  .NET提供了大量用于實現自動部署機制的功能,例如,.NET知道如何從一個遠程服務器下載程序集并把它保存到用戶的磁盤緩沖區,而且只有當遠程服務器上又有了新的版本時才再次下載——所有這些功能都已經構建到了.NET框架之中。
  一、自動部署執行文件
  自動部署.NET Windows窗體應用程序的機制可分為兩部分,第一部分是自動部署主執行文件,第二部分是答應用戶使用應用程序時下載應用的其余部分。
  首先我們來看看第一部分。讓用戶訪問主執行文件很簡單,只要把執行文件發布到Web服務器,然后把URL告訴用戶。例如,假設執行文件的名字為loader.exe,我們可以在企業的Web服務器上創建一個虛擬目錄,然后把執行文件的位置http://www.mycompany.com/myapp/loader.exe告訴每一個用戶。
  用戶只要用瀏覽器打開這個URL,或者在“開始”菜單“運行”輸入框輸入這個URL,就可以運行loader.exe執行文件。另外,我們還可以創建一個Web頁面,加入一個指向loader.exe的Html HREF標記。
  
 .NET應用自動部署窗體技術詳解(1)(圖一)

  
圖1:從Web服務器發布執行文件

  下面我們運行一下本文下載包中的一個.NET執行文件。
 ?、?從本文最后下載文件,將文件解壓縮到C:/CodeDownloadDemo文件夾。
  ⑵ 在IIS中創建一個虛擬文件夾CodeDownloadDemo。
  ⑶ 將虛擬文件夾映射到C:/CodeDownloadDemo/Loader/Bin文件夾。
 ?、?啟動IE瀏覽器,輸入下面的URL:http://localhost/CodeDownloadDemo/loader.exe。
  看到loader應用程序在瀏覽器外面運行了嗎?應用程序一旦開始運行,即使關閉了瀏覽器,我們仍可以訪問應用程序。對于任何其他.NET應用程序,我們都可以照此辦理,只要將它放到Web服務器上,然后用瀏覽器啟動即可。
  二、UrlScan工具的影響
  只要Web服務器上沒有安裝UrlScan工具,上面的例子就可以毫無問題地運行。UrlScan工具隨同IIS Lockdown工具一起發行,它的功能是禁止向Web服務器發送非法的請求。默認情況下,UrlScan工具認為包含執行文件的URL都是非法的,因此假如Web服務器上安裝了UrlScan,對http://localhost/CodeDownloadDemo/loader.exe的訪問將被禁止。
  要檢查系統中是否已經安裝了UrlScan工具,可以在控制面板中打開“添加或刪除程序”,查看“當前安裝的程序”清單。
  另外,我們還可以修改UrlScan的默認配置,使其答應對執行文件的請求,即修改一下UrlScan用來檢測合法/非法請求的INI配置文件。UrlScan的配置文件保存在c:/windows/system32/inetsvr/urlscan/urlscan.ini,下面是該文件的一個片斷:
  [DenyExtensions]
  ; Deny executables that could
  ; run on the server
  .was_exe
  .bat
  .cmd
  .com
  這個配置文件片斷中,.exe文件擴展名已經改成了.was_exe,表示.exe擴展名不再被禁止。但必須注重的是,這是解除UrlScan限制的一種簡便方法,可能帶來安全風險。對于正式為用戶提供服務的Web服務器,修改配置之前務必閱讀UrlScan的文檔或詢問網絡治理員。
  修改UrlScan的INI配置文件之后,必須重新啟動IIS服務器,才能讓修改生效。例如,在命令行環境中執行IISRESET.exe就可以重新啟動IIS服務器。
  三、自動部署應用程序的其余部分
  前面我們了解了如何自動部署一個執行文件,這種辦法對于loader(約45 KB)之類的小型應用程序有效,但通常的應用程序都要大于45 KB,例如,假如應用程序有3 MB,我們不應該讓用戶每次運行時都重新下載一個3 MB的文件。解決這個問題需要用到.NET自動部署機制的第二部分技術。
  和前面的辦法相比,一種更好的辦法是將主執行程序安裝到用戶的硬盤上,讓這個主執行程序按需下載應用程序的其余部分。例如,當用戶要用到應用程序的Invoicing模塊時就下載Invoicing部分,要用到Employees模塊時就下載Employees部分(參見圖2)。
  
 .NET應用自動部署窗體技術詳解(1)(圖二)

  
圖2:自動部署一個應用程序

  這種類型的部署通常稱為“滴流”部署(Tickle Down Deployment)。.NET框架提供了支持滴流布署技術的必要工具類,即System.Reflection名稱空間中的Assembly。Assembly類能夠從遠程服務器下載一個程序集,并在本地緩沖以供以后引用。例如,利用下面的代碼可以從http://localhost/CodeDownloadDemo/Loader/下載ModuleA.dll程序集,然后從該程序集創建EmployeeForm類的實例:
  '指定URL
  Dim URL As String
  URL = _
  "http://localhost/CodeDownLoadDemo/ModuleA.DLL"
  '從指定的URL裝入程序集
  Dim a As [Assembly]
  a = [Assembly].LoadFrom(URL)
  '獲得一個EmployeeForm類的引用
  Dim t As Type = a.GetType("ModuleA.EmployeeForm")
  '創建窗體的實例,并顯示出窗體
  Dim o As Object = Activator.CreateInstance(t)
  o.Show()
  這個代碼片斷雖然簡單,卻用到了.NET框架許多值得關注的特性。下面我們就來逐一分析這些特性。
  首先,[Assembly].LoadFrom這行代碼利用HTTP協議下載一個DLL。在本例中,URL指向localhost,但它同樣也可以指向一個遠程服務器,例如http://www.mycompany.com/myapp。這就是說,我們只要一行代碼,并指定一個適當的URL,其余工作就全交給.NET了,不管程序集是本地的還是遠程的。
  其次,從遠程服務器下載得到一個DLL之后,a.GetType這行代碼從該DLL提取一個類的引用。注重,類的名稱以字符串的形式指定,這意味著,我們可以在運行時臨時決定要引用的類的名稱。這一點非常重要,因為現在我們可以在運行時決定要引用的是ModuleA.EmployeeForm,還是ModuleA.InvoiceForm。對于VB.NET和C#之類強類型的語言,這一特性顯得尤其寶貴,它提供的靈活性是這類語言中非常罕見的。
  最后,Activator.CreateInstance(t)這行代碼實際創建了EmployeeForm類的一個實例。有了類的實例之后,接下來就可以調用它的方法,設置它的屬性。在上面的例子中,我們調用了EmployeeForm類的Show方法。
  四、localhost與127.0.0.1的區別
  當我們指定的URL是“http://localhost”形式時,前面兩節介紹的辦法都不會出現問題。但是,假如我們改用http://127.0.0.1形式的URL,就會碰到問題。例如,假如用http://127.0.0.1/CodeDownloadDemo/loader.exe這個URL來打開loader.exe,就會看到類似圖3的錯誤信息:
  
.NET應用自動部署窗體技術詳解(1)(圖三)

  
圖3:用127.0.0.1訪問時出現的錯誤

  系統的配置不同,具體的錯誤信息也不同,但不管錯誤信息到底是什么,用http://127.0.0.1總是可以看到與安全有關的錯誤信息。
  當我們通過一個URL來運行應用程序時,應用程序可能來自一個遠程服務器。但是,.NET不能肯定我們想要運行的代碼是來自一個可信任的服務器,還是一個受限制的站點。.NET對遠程代碼采用的安全策略相當復雜,簡單地說,.NET把那些不包含句點符號(“.”)的URL視為本地Intranet的URL。默認情況下,.NET答應運行來自Intranet站點的代碼。另一方面,.NET把那些包含了句點符號的URL(例如http://127.0.0.1)視為Internet地址,除非明確地設定某個URL是一個安全的位置,否則.NET默認不答應運行Internet URL的程序代碼。
  安全策略是.NET框架必不可少的組成部分,假如沒有安全策略,答應用戶將瀏覽器指向任何URL下載.NET執行文件并自動運行,那只會把網絡變成病毒編寫者的天堂。有了.NET安全策略,我們就可以保護用戶,避免用戶下載和運行來源不明的代碼。
  也許大家已經知道,.NET框架是一個與操作系統緊密集成的系統,安全機制是這種緊密集成非凡明顯的領域之一。.NET安全策略不僅強大,而且具有高度可配置的特點。下面我們就來了解一下這些安全策略的基本組織,以及如何配置安全策略答應用戶從可信任的URL下載執行文件。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
粉嫩老牛aⅴ一区二区三区| 日韩一级黄色av| 欧美第一淫aaasss性| 国产伦精品免费视频| 国产精品私拍pans大尺度在线| 一个人看的www久久| 亚洲午夜精品视频| 黑人巨大精品欧美一区免费视频| 97在线看免费观看视频在线观看| 欧美做受高潮电影o| 成人国产亚洲精品a区天堂华泰| 九九视频这里只有精品| 欧美性受xxx| 久久国产精品影视| 成人深夜直播免费观看| 国产日韩精品在线播放| 91大神福利视频在线| 久久99精品国产99久久6尤物| 欧美在线视频观看| 91精品视频免费观看| 亚洲精品456在线播放狼人| 一本大道亚洲视频| 日韩精品视频观看| 伊人久久久久久久久久久久久| 欧美天堂在线观看| 亚洲91精品在线| 久久精品美女视频网站| 国产69精品久久久| 日韩精品在线播放| 欧美日本在线视频中文字字幕| 亚洲桃花岛网站| 日韩欧美国产视频| 日韩亚洲欧美中文在线| 国产亚洲欧美日韩精品| 综合欧美国产视频二区| 欧美国产在线视频| 亚洲新中文字幕| 色综合伊人色综合网站| 亚州国产精品久久久| 国产香蕉97碰碰久久人人| 亚洲在线观看视频| 国产精品久久999| 日韩黄色在线免费观看| 国产精品久久久久久久久久久不卡| 亚洲激情成人网| 久久久综合免费视频| www.日韩av.com| 亚洲精品国产综合区久久久久久久| 国内伊人久久久久久网站视频| 日韩精品丝袜在线| 久久久噜久噜久久综合| 国产一区二区丝袜| 欧美激情精品久久久| 欧美精品在线极品| 国产精品三级网站| 精品欧美一区二区三区| 日日狠狠久久偷偷四色综合免费| 亚洲高清久久网| 国产色婷婷国产综合在线理论片a| 伦理中文字幕亚洲| 福利视频第一区| 日韩av免费在线观看| 欧美在线一级va免费观看| 96pao国产成视频永久免费| 欧美大成色www永久网站婷| 日韩精品中文字幕久久臀| 亚洲欧美精品在线| 欧美日韩国产一区二区三区| 久久综合国产精品台湾中文娱乐网| 亚洲欧美日韩中文在线制服| 色综合伊人色综合网站| 伊人伊成久久人综合网小说| 国产成人精品久久亚洲高清不卡| 国产精品视频精品| 久久久久久久久电影| 青草青草久热精品视频在线观看| 91久久久在线| 亚洲午夜性刺激影院| 国产精品久久久久久久久免费| 日韩亚洲欧美中文高清在线| 国语自产精品视频在线看抢先版图片| 久久久久久久91| 亚洲色无码播放| 在线观看日韩av| 亚洲精品国偷自产在线99热| 97超级碰碰碰| 国产高清视频一区三区| 国产精品日日做人人爱| 日韩在线一区二区三区免费视频| 日韩在线观看高清| 91免费人成网站在线观看18| 亚洲全黄一级网站| 久热国产精品视频| 欧美成人免费视频| 亚洲欧洲自拍偷拍| 九色成人免费视频| 97在线看免费观看视频在线观看| 久久av在线看| 亚洲精品视频在线播放| 亚洲香蕉av在线一区二区三区| 亚洲天堂免费在线| 91大神福利视频在线| 欧美成人免费视频| 97香蕉超级碰碰久久免费的优势| 欧美在线免费观看| 久久天天躁狠狠躁夜夜躁2014| 国产区亚洲区欧美区| 欧美日韩高清在线观看| 国产精品一区二区三区免费视频| 亚洲精选中文字幕| 亚洲xxx自由成熟| 亚洲精品日韩欧美| 亚洲国产成人久久综合| 色狠狠av一区二区三区香蕉蜜桃| 国产精品三级网站| 久久精品一偷一偷国产| 成人av在线网址| 亚洲欧美日韩第一区| 精品久久久久久电影| 国产精品老女人精品视频| 欧美日韩免费在线| 国产欧美va欧美va香蕉在| 国产欧美日韩中文字幕| 亚洲第一页中文字幕| 欧美性高潮床叫视频| 国产一区二区久久精品| 国产日韩精品视频| 欧美人与性动交| 欧美日本亚洲视频| 91探花福利精品国产自产在线| 亚洲精选中文字幕| 久久影院中文字幕| 亚洲激情自拍图| 欧美一级大片在线观看| 日韩成人中文电影| 神马国产精品影院av| 日韩精品视频免费专区在线播放| 日韩av一卡二卡| 午夜精品久久久久久久99黑人| 欧美激情按摩在线| 欧美日韩美女在线| 日韩精品中文字幕在线观看| 亚洲一区中文字幕在线观看| 国产日韩在线看| 欧美精品18videosex性欧美| 国产精品电影在线观看| 国外成人在线直播| 国产精品扒开腿做| 欧美日韩综合视频| 国产精品永久在线| 国产精品27p| 亚洲精品日韩丝袜精品| 欧美在线亚洲在线| 国产成人一区二区三区小说| 欧美日本精品在线| 欧美一级黑人aaaaaaa做受| 欧美激情精品久久久久| 日本一区二区三区四区视频| 国产精品视频久久久| 亚洲摸下面视频| 国产精品欧美一区二区三区奶水| 91久久久在线| 中文字幕9999| 日韩av在线免播放器|