For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
代碼訪問安全性是保護(hù)桌面免受正在通過無接觸部署方式下載的 Windows 窗體應(yīng)用程序影響的關(guān)鍵。此模型通過匹配應(yīng)用程序和應(yīng)該分配給應(yīng)用程序的權(quán)限來工作。在運(yùn)行時(shí),公共語言運(yùn)行時(shí)從程序集中收集憑證。憑證可以采用代碼源自的 Internet Explorer 區(qū)域(本地磁盤、Intranet、Internet、受信任站點(diǎn)或不受信任站點(diǎn))的形式,也可采用代碼源自的 URL(簽名使用的私鑰、哈希值、Authenticode 發(fā)布服務(wù)器簽名等等)的形式。使用此憑證,公共語言運(yùn)行時(shí)將程序集分配給相應(yīng)的代碼組或類別。每個(gè)代碼組都擁有分配給它的權(quán)限集,說明程序集應(yīng)獲得的權(quán)限,例如能否讀取或?qū)懭氡镜卮疟P、訪問聯(lián)網(wǎng)資源、打印以及訪問環(huán)境變量等等。
默認(rèn)情況下,.NET Framework 附帶圍繞 Internet Explorer 區(qū)域設(shè)置的代碼組。例如,來自 Intranet 區(qū)域的代碼獲得的權(quán)限很有限,因此無法執(zhí)行文件 IO 訪問。
為了說明安全檢查在起作用,任務(wù)管理可執(zhí)行程序包含一個(gè)名為 Read Boot.ini 的工具欄按鈕,該按鈕嘗試訪問 C:\ 盤中的文件。
您可以進(jìn)行一個(gè)簡單的測試,單擊"Read Boot.ini"按鈕,查看當(dāng)應(yīng)用程序請求 C:\ 根目錄中的文件時(shí)會(huì)發(fā)生什么情況 - 引發(fā)安全異常,應(yīng)用程序不處理該請求。
異常返回一個(gè)文件 IO 權(quán)限異常,說明應(yīng)用程序無法訪問 TaskManagement.exe 請求的特定資源。
使用多程序集應(yīng)用程序的無接觸部署
在本示例應(yīng)用程序中,我們已經(jīng)說明了如何加載單個(gè)程序集。通過對 Assemble 對象使用 LoadFrom() 方法,.NET Framework 還可以有效地將多程序集應(yīng)用程序傳入客戶端。
Assemble 類具有 LoadFrom 方法,可以初始化一個(gè)對特定程序集的引用。LoadFrom 的參數(shù)是 URL 或文件路徑名。指定 URL 后,.NET Framework 首先通過檢查程序集下載緩存,檢查客戶端是否存在已命名的程序集。如果程序集不在程序集下載緩存中,.NET Framework 將從 Web 服務(wù)器獲取該程序集,并將它的副本置于下載緩存中。這樣,程序集對象即可在代碼中使用。
例如,如果在一個(gè)單獨(dú)的名為 AboutForm.dll 的程序集中實(shí)現(xiàn)了 TaskManagement About Windows 窗體,則可以在用戶請求查看"About"(關(guān)于)對話框時(shí)使用 LoadFrom 下載該程序集。這樣,當(dāng)用戶與應(yīng)用程序交互時(shí),我們只需傳輸應(yīng)用程序所需的代碼。
無接觸部署和 XML Web Service
一個(gè)重要的安全限制是,當(dāng)通過 Web 服務(wù)器分發(fā)應(yīng)用程序時(shí),其域必須與它所依賴的所有 Web 服務(wù)相匹配。例如,如果從 myserver/TaskManagement.exe 啟動(dòng) TaskManagement.exe,則只允許使用myserver 上的 XML Web Service.出于安全性方面的考慮,不允許應(yīng)用程序從其他服務(wù)器調(diào)用 Web 服務(wù)。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!