九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
.NET Framework

1 起源

.NET Framework(又稱 .NET 框架)。是由微軟開發(fā),一個致力于敏捷軟件開發(fā)(Agile software development)、快速應用開發(fā)(Rapid application development)、平臺無關性和網絡透明化的軟件開發(fā)平臺。.NET是微軟為下一個十年對服務器和桌面型軟件工程邁出的第一步。.NET包含許多有助于互聯(lián)網和內部網應用迅捷開發(fā)的技術。.NET Framework 是微軟公司繼Windows DNA之后的新開發(fā)平臺。

.NET Framework

2 簡介

.NET Framework 是以一種采用系統(tǒng)虛擬機運行的編程平臺,以通用語言運行庫(Common Language Runtime)為基礎,支持多種語言(C#、VB、C++、Python等)的開發(fā)。NET也為應用程序接口(API)提供了新功能和開發(fā)工具。這些革新使得程序設計員可以同時進行Windows應用軟件和網絡應用軟件以及組件和服務(web服務)的開發(fā)。.NET提供了一個新的反射性的且面向對象程序設計編程接口。.NET設計得足夠通用化從而使許多不同高級語言都得以被匯集。.NET Framework 中的所有語言都提供基類庫(BCL)。

.NET編譯平臺由核心組件及其他構件(開發(fā)工具及協(xié)議、WEB客戶端及終端用戶應用、WEB服務及企業(yè)服務器)所組成。微軟的Windows作為操作系統(tǒng)運行于.NET框架之下,在Windows XP SP2/Windows Server 2003/Windows Vista系統(tǒng)中內置.NET框架,它也可以安裝在大多數(shù)老版本的Windows系統(tǒng)中。.NET框架作為.NET開發(fā)平臺的核心組件為Web服務及其它應用提供構建、移植和運行的環(huán)境。.NET組件是一個帶有動態(tài)鏈接庫擴展的預編制類模塊。在運行的時候,通過使用一個用戶使用程序被激活并加載到內存中。.NET組件是用于創(chuàng)建網絡和Windows應用程序的,這些應用程序使一個應用程序所需的功能可以顯示在外部。.NET平臺還包含Web表單,Web表單是可從網上下載的標準接口。一個Web表單包含供使用者輸入數(shù)據(jù)資料的文本框。然后使用者可以將表單提交給接收器。.NET平臺至關重要的一部分就是網絡服務器。網絡服務器查詢協(xié)議和標準的合集。應用程序可以使用網絡服務器通過計算機網絡交換數(shù)據(jù)資料。例如,當你在線上訂購火車票,并輸入你的信用卡卡號付款時,你就在使用網絡服務器。

穩(wěn)定版本   4.0  

操作系統(tǒng)   Windows 98,Windows NT 4.0,Windows Server 2003,Windows XP,Windows Vista,Windows Server 2008,Windows 7,Windows 8,Windows Server 2012  

類型   系統(tǒng)平臺  

許可協(xié)議   許可協(xié)議Proprietary software  

3 版本

3.1 版本簡述

版本完整版本號發(fā)行日期Visual StudioWindows 默認安裝

1.0   1.0.3705.0   2002-02-13   Visual Studio .NET 2002   Windows XP Media Center EditionWindows XP Tablet PC Edition  

1.1   1.1.4322.573   2003-04-24   Visual Studio .NET 2003   Windows Server 2003  

2.0   2.0.50727.42   2005-11-07   Visual Studio 2005      

3.0   3.0.4506.30   2006-11-06      Windows VistaWindows Server 2008  

3.5   3.5.21022.8   2007-11-19   Visual Studio 2008   Windows 7Windows Server 2008 R2  

4.0   4.0.30319.1   2010-04-12   Visual Studio 2010      

4.5   4.5.50709   2012-08-16   Visual Studio 2012 RTM   Windows 8Windows Server 2012  

3.2 .NET Framework 1.0

完整版本號 - 1.0.3705。這是最初的.NET構架,發(fā)行于2002年。它可以以一個獨立且可重新分發(fā)的包的形式或在一個軟件發(fā)展工具包集中被獲得。它也是第一個微軟Visual Studio .NET的發(fā)行版的一部分(也被稱作Visual Studio .NET 2002)。

3.3 .NET Framework 1.1

完整版本號 - 1.1.4322。這是首個主要的.Net Framework升級版本,發(fā)行于2003年。它可以以一個獨立的可重新分發(fā)的包的形式或在一個軟件發(fā)展工具包集中被獲得。它也是第二個微軟Visual Studio .NET版本的一部分(也被稱作Visual Studio .NET 2003)。它也是首個被Windows操作系統(tǒng)-Windows Server 2003所內置的.Net Framework版本。

自1.0版本以來的改進:

自帶了對mobile asp .net控件的支持。這在1.0版本是以附加功能方式實現(xiàn)的,現(xiàn)在已經集成到框架的內部。安全方面的變更 - 使得Windows窗體代碼以可靠的行為運行,從而可以在Internet環(huán)境內安全運行,并且加入了ASP .NET應用程序的代碼安全訪問功能。自帶了對ODBC和Oracle數(shù)據(jù)庫的支持。這在1.0版本是以附加功能方式實現(xiàn)的,現(xiàn)在已經集成到框架的內部。.NET Compact Framework- 這是一個用于智能設備(例如Pocket PC或者SmartPhone)的.Net Framework的子集。對IPv6的支持。大量的API變更。

3.4 .NET Framework 2.0

完整版本號 - 2.0.50727.42,發(fā)行于2005年10月27日。

.Net Framework 2.0的組件都包含在 Visual Studio 2005和SQL Server 2005里面。通過MSDNUniverse版可以免費下載RTM版本。自1.1版本以來的改進:大量的API變更。新的API讓需要管理.NET運行庫實例的非.NET的應用程序可以做到這點。這個新的API對.NET運行庫的各種功能,包括:多線程、存儲器分配、代碼加載等,提供了很好的控制。它最初是為Microsoft SQL Server能夠有效率的使用.NET運行庫而設計的,因為Microsoft SQL Server擁有它自己的日程管理器和存儲器管理器。

.NET Framework 3.0

此版本不支持 Windows 2000。

發(fā)行于2006年11月21日。曾用名“WinFX”。依然使用.Net Framework 2.0版本的公共語言運行庫(CLR),并加入了適應未來軟件發(fā)展方向的4個框架:

Windows Presentation Foundation(WPF):提供更佳的用戶體驗,用來開發(fā)Windows Forms程序以及流覽器應用程序.Windows Communication Foundation(WCF):提供SOA(面向服務的軟件構架)支持的安全的網絡服務(Web Service)框架。Windows Workflow Foundation(WF):提供一個設計與發(fā)展工作流程導向(Workflow-oriented)應用程序基礎支持的應用程序接口。Windows CardSpace:提供一個SSO的解決方案,每個用戶都有各自的CardSpace。

3.5 .NET Framework 3.5

此版本不支持 Windows 2000。

這個版本將包含一個支持C#和VB .Net中心的語言特性的編譯器,以及對語言集成查詢(LINQ,Language-Integrated Query)的支持。該版本隨Visual Studio 2008一起發(fā)布。

同時,.NET Framework 3.5自動包含 .NET Framework 2.0 SP1以及 .Net Framework 3.0 SP1,用于為這兩個版本提供安全性修復,以及少量新增的類庫(如System.DateTimeOffest)。此版本提供的新功能有:

擴展方法(Extension Method)屬性(Attribute),用于為擴展方法提供支持LINQ支持,包括LINQ to Object、LINQ to ADO .NET以及LINQ to XML表達式目錄樹( Tree),用于為Lambda表達式提供支持與語言集成查詢 (LINQ)和數(shù)據(jù)感知緊密集成。借助這個新功能,您可以使用相同的語法,在任何支持LINQ的語言中編寫相關代碼,以篩選和枚舉多種類型的SQL數(shù)據(jù)、集合、XML和數(shù)據(jù)集,以及創(chuàng)建它們的投影。利用asp .netAJAX可以創(chuàng)建更有效、更具交互性、高度個性化的Web體驗,這些體驗在所有最流行的瀏覽器上都能實現(xiàn)。用于生成WCF服務的全新Web協(xié)議支持,包括AJAX、JSON、REST、POX、RSS、ATOM和若干新的WS-*標準。Visual Studio 2008中面向WF、WCF和WPF的完整工具支持,其中包括支持工作流的服務這一新技術。.Net Framework 3.5基類庫 (BCL)中的新類可滿足許多常見的客戶請求。

該版本新增的ASP .NET功能,隨Visual Studio 2008 SP1發(fā)布,此版本提供了下列的新功能:

新增的ASP .NET功能包括ASP .NET動態(tài)數(shù)據(jù)和ASP .NET AJAX附加功能,前者提供了無需編寫代碼就可實現(xiàn)數(shù)據(jù)驅動的快速開發(fā)的豐富支架框架,后者為管理瀏覽器歷史記錄提供了支持(后退按鈕支持)。ADO .NET Entity Framework。對SQL Server 2008的數(shù)據(jù)提供程序支持。.Net Framework客戶端配置文檔是完整版.Net Framework的子集,面向客戶端應用程序。這改善了尚未安裝.Net Framework的計算機上的安裝體驗。改進Windows Presentation Foundation的性能,其中包括啟動速度的位圖效果性能的提高。為Windows Presentation Foundation增加的功能包括對業(yè)務線應用程序的更好支持、本機閃屏支持、DirectX像素著色器支持以及新的WebBrowser控件。ClickOnce應用程序發(fā)布者可以根據(jù)具體情況決定是否取消簽名和散列,開發(fā)人員可以以編程方式安裝顯示自定義署名的ClickOnce應用程序,ClickOnce錯誤對話框支持指向網絡上特定于應用程序的支持站點的鏈接。用于SQL Server的.Net Framework數(shù)據(jù)提供程序 (System.Data.SqlClient)完全支持SQL Server 2008數(shù)據(jù)庫引擎的所有新功能。有關.Net Framework對SQL Server 2008的支持的更多信息,請參見SQL Server中的新功能 (ADO .NET)。ADO .NET數(shù)據(jù)平臺是一種多版本策略,它使開發(fā)人員能夠針對概念性實體數(shù)據(jù)模型進行編程,從而減輕他們的編碼和維護工作。此平臺提供了ADO .NET Entity Framework、實體數(shù)據(jù)模型 (EDM)、對象服務、LINQ to Entities、Entity SQL、EntityClient、ADO .NET數(shù)據(jù)服務及實體數(shù)據(jù)模型工具。Windows Communication Foundation現(xiàn)在提供了改進的互操作性支持,增強了部分信任方案中的調試體驗,并擴展了集成協(xié)議支持以更廣泛地應用于Web 2.0應用程序,進而使DataContract串行化程序更易于使用。Microsoft.VisualBasic.PowerPacks命名空間引入了新的DataRepeater控件,該控件以可自定義的列表格式顯示數(shù)據(jù)。此命名空間還包含新的矢量形狀。

3.6 .NET Framework 4.0

此版本不支持 Windows 2000。

.NET Framework 4.0主要增加了并行支持,于2010年4月12日推出。

企業(yè)基礎 .NET提供開發(fā)軟件的獨立平臺,自帶高度安全的網絡系統(tǒng),相當倚重軟件組件以及組件導向程序。在這方面它完全取代前者(COM1)。

3.7 .NET Framework 4.5

此版本不支持 Windows 2000、Windows XP。

.NET Framework 4.5 發(fā)行于2012年8月16日,是支持生成和運行下一代應用程序和 Web 服務的內部 Windows 組件。 .NET Framework 的關鍵組件為公共語言運行時 (CLR) 和 .NET Framework 類庫(包括ADO .NET、ASP .NET、Windows 窗體和 Windows Presentation Foundation (WPF) 和 Windows Workflow Foundation (WF))。 .NET Framework 提供了托管執(zhí)行環(huán)境、簡化的開發(fā)和部署以及與各種編程語言的集成。

.NET for Windows Store apps:Windows Metro 風格 應用程序為特定窗體因素并利用 Windows 操作系統(tǒng)的功能。 通過使用 C# 或 Visual Basic,.NET Framework 4.5 的子集可用于生成 Windows 的 Metro 風格 應用程序。 這個子集稱為 .NET for Windows Store apps

更新內容:

在部署期間,能夠通過檢測和關閉 .NET Framework 4 應用程序來減少系統(tǒng)重啟。為大于20 GB 在 64 位平臺上 (GB) 的數(shù)組支持。 此功能可在應用程序配置文件中啟用。

通過服務器的背景垃圾回收改進性能。 當您使用服務器垃圾回收在 .NET Framework 4.5 中時,后臺垃圾回收自動啟用。

背景實時 (JIT) 生成,可以選擇可用在多核處理器改進應用程序性能。

在它超時之前,能夠限制正則表達式引擎要多久能嘗試解決正則表達式。

能夠定義應用程序域的默認區(qū)域性。

Unicode (UTF-16) 編碼的控制臺支持。

為版本控制區(qū)域性字符串排序和比較數(shù)據(jù)支持。

在檢索資源時,請改進性能。 請參見 打包和部署桌面應用程序中的資源。

Zip 壓縮改進可減少壓縮文件的大小。

通過 CustomReflectionContext 類,能夠自定義反射上下文來重寫默認反射行為。

對于國際化域名的 2008 版在應用程序 (IDNA) 標準的支持,當 System.Globalization.IdnMapping 選件類在 Windows 8 使用時。

當 .NET Framework 在 Windows 8 使用時,到操作系統(tǒng)的字符串比較的委托實現(xiàn) Unicode 6.0。 在其他平臺上運行時,.NET Framework 包括其自己的實現(xiàn) Unicode 5.x 的字符串比較數(shù)據(jù)。每個應用程序域的基礎上能夠計算字符串的哈希代碼。

4 功能

4.1 第一點

ASP .NET動態(tài)數(shù)據(jù),它提供了豐富的框架,從而使用戶可以快速進行數(shù)據(jù)驅動的開發(fā),而無需編寫代碼;ASP .NET AJAX 的一項新增功能,對管理瀏覽器歷史記錄提供了支持(支持后退按鈕)。

4.2 第二點

對公共語言運行時的核心改進包括:改進了.NET Framework本機映像的布局、選擇不再對完全受信任的程序集進行強名稱驗證、提高了應用程序啟動性能、改進了生成的代碼以縮短端對端應用程序執(zhí)行時間、選擇在ASLR(地址空間布局隨機化)模式下運行托管代碼(如果操作系統(tǒng)支持)。此外,從網絡共享打開的托管應用程序在完全受信任環(huán)境下運行時與本機 應用程序具有相同的行為。

4.3 第三點

提高了Windows Presentation Foundation的性能,包括縮短了啟動時間,提高了與位圖效果有關的性能。WPF的其他新增功能包括:改善了對業(yè)務線應用程序、本機初始屏幕、 DirectX 像素著色器的支持,并且新增了WebBrowser控件。

4.4 第四點

ClickOnce應用程序發(fā)行者可以決定在適當情況下不進行簽名和加密,開發(fā)人員可以編程方式安裝ClickOnce應用程序以顯示自定義署名,并且ClickOnce錯誤對話框支持鏈接到Web上應用程序特定的支持網站。

4.5 第五點

實體框架是從現(xiàn)有的一套ADO.N ET數(shù)據(jù)訪問技術發(fā)展而來的。利用實體框架,開發(fā)人員可以按照應用程序特定的域模型(而不是基礎數(shù)據(jù)庫模型)來針對關系數(shù)據(jù)庫進行編程。有關更多信息,請參見實體框架入門。實體框架還引入了一些其他功能,包括支持SQL Server 2008的新類型、默認實體圖形序列化和實體數(shù)據(jù)源。在此版本中,實體框架支持SQL Server 2008中的新日期和文件流功能。圖形序列化工作可幫助開發(fā)人員生成將全部圖形建模為數(shù)據(jù)協(xié)定的Windows Communication Foundation (WCF)服務。實體數(shù)據(jù)源為希望使用實體框架的ASP .NET應用程序構建者提供了傳統(tǒng)的數(shù)據(jù)源體驗。

4.6 第六點

LINQ to SQL新增了對SQL Server2008中的新日期和文件流功能的支持。

4.7 第七點

ADO. NET Data Services Framework由滿足以下條件的模式和庫組合而成:支持將數(shù)據(jù)公開為一項基于REST(具象狀態(tài)傳輸)的靈活數(shù)據(jù)服務,企業(yè)網絡內部或整個互聯(lián)網上的Web客戶端都可以使用該服務。ADO.N ET Data Services Framework支持基于任何數(shù)據(jù)源創(chuàng)建數(shù)據(jù)服務。通過與 ADO .NET Entity Framework 的充分集成,可以輕松公開基礎存儲架構的概念視圖模型??梢暂p松地從任一平臺訪問使用ADO .NET Data Services Framework創(chuàng)建的服務以及兼容的Windows Live (dev.live .com)服務。針對運行在微軟平臺上的客戶端應用程序提供了一組客戶端庫,以簡化與數(shù)據(jù)服務的交互。例如,基于.NET Framework的客戶端可以使用LINQ查詢數(shù)據(jù)服務,也可以使用簡單的.NET Framework對象層更新此服務中的數(shù)據(jù)。

4.8 第八點

現(xiàn)在,Windows Communication Foundation改進了對互操作性的支持,增強了部分受信任情況下的調試體驗,并且擴展了整合協(xié)議支持以便在Web 2.0應用程序中可以進行更廣泛的應用,從而使Data Contract序列化程序變得更易于使用。

4.9 第九點

用于SQL Server(Sql Client) 的.NET Framework數(shù)據(jù)提供程序新增了對SQL Server 2008中的文件流和稀疏列功能的支持。

5 特色

5.1 軟件環(huán)境

在軟件環(huán)境中,應用程序的來源很多,它們執(zhí)行很多任務。對應用程序代碼的信任是一個主要需求,因為誰也不想軟件或信息遭到破壞。給予許可的安全策略不會允許對敏感信息的不適當?shù)脑L問,或將本地機器暴露給惡意的程序或甚至是有平常錯誤的代碼。

5.2 安全結構

安全結構提供了基于用戶賬號的隔離和訪問控制--在這些限制內給予代碼完全訪問權,并假定由特定用戶可運行的代碼具有相同的信任度。不幸的是,如果所有程序都代表某用戶運行,根據(jù)用戶對代碼的隔離對于保護一個程序不被其它用戶使用是不夠的。另一種情況,不能被完全信任的代碼經常被轉移到沙箱模型中執(zhí)行,在此代碼運行于隔離環(huán)境,而不會訪問大部分的服務。

應用程序的成功的安全解決方案必須能強化兩個安全模型間的平衡。它必須提供對資源的訪問,以便以完成有用的工作,它需要對應用程序的安全性作細致的控制以確保代碼被識別,檢測,并給予合適的安全級別。.NET Framework就提供了一個這樣的安全模型。

NET Framework 第一個SP服務包的最終版.這是一個累積更新,包含很多基于.NET Framework 不斷生成的新功能,此外還包括.NET Framework SP2和.NET Framework SP2累積更新,支持x86、x64、IA64三種架構。.NET Framework SP1集成了此前發(fā)布的三十個相關Hotfix熱修復補丁,同時還引入了不少新特性和改進:

NET Framework安全迎合了這種事實:軟件向多樣化的移動組件發(fā)發(fā)展,并根據(jù)這種事實提供保護。在一個細化的、可擴展的策略和許可系統(tǒng)下,用戶能夠運行功能強大的代碼,而同時減少相關的風險。在沒有運行時對用戶作出信任決定時,管理員可以在各個級別創(chuàng)建強壯的安全策略。策略是完全可定置的。開發(fā)人員能夠集中解決應用程序邏輯,而不用關心核心的安全問題(它由CLR透明地處理)。然而,開發(fā)人員可以在任何時候擴展安全模型。

6 安全方案

6.1 安全規(guī)則

.NET Framework安全解決方案基于管理代碼的概念,以及由通用語言運行時(CLR)加強的安全規(guī)則。大部分管理代碼需要進行驗證以確保類型安全及預先定義好的其它屬性的行為的安全。例如,在驗證的代碼中,聲明為接收4字節(jié)值的訪問將拒絕提供8字節(jié)參數(shù)的調用,因為不是類型安全的。驗證過程還確保了執(zhí)行流只傳送到已知的位置,如方法入口點--這個過程去除了跳轉到任意位置執(zhí)行的能力。

6.2 編程錯誤

驗證將阻止不是類型安全的代碼執(zhí)行,在它們引起破壞前捕獲很多常見的編程錯誤。通常的弱點--如緩存溢出,對任意內存或沒有初始化的內存的讀取,對控件的隨意傳送--都不再可能出現(xiàn)。這將使最終用戶受益,因為在他們執(zhí)行代碼前對其進行檢查。這也有益于開發(fā)人員,他們會發(fā)現(xiàn)很多常見錯誤(過去一直在困繞前開發(fā))現(xiàn)在可以查明,并能阻止它們引起破壞。

6.3 受益的安全措施

CLR也能使非管理代碼運行,但非管理代碼不能從這些安全措施中受益。特殊的許可與對非管理代碼的調用能力相關,一個強大的安全策略能確保這些許可被恰當?shù)亟o予。經過很長時間后,非管理代碼到管理代碼的移植將減少對非管理代碼的調用頻率。

7 認證授權

7.1 認證過程

認證是一個過程,它接收來自用戶的證書,并對證書的授權進行確認。如果證書是有效的,那么用戶就可以說他擁有已認證的身份。而授權的過程是:確定認證用戶是否能夠訪問給定的資源。

7.2 可通過的認證

認證可通過系統(tǒng)或企業(yè)邏輯來完成,通過某個API它是或獲得的。認證API是完全可擴展的,因此開發(fā)人員根據(jù)需要使用自己的企業(yè)邏輯。開發(fā)人員可以對他們的認證需求進行編碼,也可以修改底層的認證方法而無需對他們的代碼作太大變化。除了微軟Windows操作系統(tǒng)身份認證外,還有的認證方法包括基本HTTP,摘要和 Kerberos,以及微軟Passport和基于窗體的認證。這些認證方法已經完全集成到AS P.N ET中了。

7.3 提供證書

在ASP. NET窗體認證中,用戶提供證書,并提交窗體。如果應用程序簦別請求,系統(tǒng)發(fā)送一個cookie ,該cookie以某種形式包含包含了證書或包含重新獲得身份的關鍵字。接下來發(fā)送的請求在頭中包含了cookie,ASP. NET處理程序通過應用程序所期望的任何有效方法對這些請求認證和授權。如果請求沒有經過認證,HTTP客戶端將用于把請求發(fā)送到認證窗體,在那里用戶可能提供信任證書。窗體認證有時用于個性化--為已知用戶的內容進行定置。在一些情況下,身份是問題所在而不是認證,因此用戶的個性化信息可以簡單地通過訪問用戶或獲得。

7.4 授權目的

授權的目的是確定作出請求的身份是否被給予了對給定資源的訪問權。ASP. NET提供了兩種類型的授權服務:文件授權和URL授權。文件授權根據(jù)正在作用的方法和作出請求的身份決定用戶使用于哪個訪問控制列表。URL授權是URI名稱空間和不同用戶或角色間的邏輯映射。

8 隔離存儲

.NET Framework提供了一個特殊的功能,隔離存儲,用于存儲數(shù)據(jù),甚至是當不允許對文件進行訪問時--例如,當從Internet下載了一個管理控件,并運行它,為它提供了有限的許可權但沒有權力讀寫文件。

隔離存儲是一組新的用于.NET支持的用于本地存儲的類型和方法。在本質上,每個組合可以訪問磁盤上一斷被隔離的存儲空間。它不允許訪問其它數(shù)據(jù),隔離存儲只對為它創(chuàng)建的組合有效。

隔離存儲也可被應用程序用于保存活動記錄,保存設置,或者將狀態(tài)數(shù)據(jù)保存到磁盤上以備將來之用。因為隔離存儲的位置是預先決定好的,所以隔離存儲為指定唯一存儲空間提供了一種方便的方式,而不需要決定文件路徑。

從本地企業(yè)局域網獲得的代碼具有相似的限制,但更少,它可以訪問大限額的隔離存儲。最后,從受限站點區(qū)域(不信任站點)來的代碼沒有對隔離存儲的訪問權。

8.1 基于證據(jù)的安全

.NET Framework引入了基于證據(jù)的安全的概念。在本質上,它是對安全策略暴露出來問題的解答:

組合從哪個站點獲得?

組合是.NET Framework應用程序的構件。它們組成了部署,版本控制,重用,激活作用域,安全認證的基本單元。應用程序的組合是從網站上下載到客戶端的。

組合是從哪個URL獲得的?

安全策略需要明確的地址,而組合是從這個地址下載的。

組合是從哪個區(qū)獲得的?

區(qū)是基于代碼的位置,對安全標準,如 Internet, intranet和本機等等,的描述。

組合的強名(strong name)是什么?

強名是由組合的創(chuàng)建者提供了密碼強化后的標識符。盡管它沒有提供對創(chuàng)建者的任何證明,但它唯一標識了組合,確保了組合沒有被破壞過。

根據(jù)對這些問題的回答,及其它證據(jù),安全策略可以對賦予組合垢合適許可進行計算。從多種來源可以得到證據(jù),包括CLR,瀏覽器,微軟ASP. NET,及外殼--這依賴于代碼的來源。

策略驅動的信任模型使用代碼證據(jù)

當組合被調入內存進,CLR策略系統(tǒng)通過收集組合的證據(jù)并在策略環(huán)境中對證據(jù)進行計算,從而決定賦予組合什么樣的許可權。CLR策略系統(tǒng)然后根據(jù)評估過的證據(jù)和組合作出的許可請求給予組合一組許可。只有在組合被給予了一組最少的許可后,或組合根本不需要許可權,組合的創(chuàng)建者才能知道組合正確運行。通過一個或多個對特定許可的請求,這樣的附加需求可以被傳送室策略系統(tǒng)。

根據(jù)許可請求的類型,策略系統(tǒng)可以進一步限制給予組合的許可(刪除不必要的許可)或甚至拒絕將組合裝入內存(如果運行組合所需的最小許可沒有被策略給予)。在不存在任何許可請求的情況下,組合永遠不會被給予多于策略系統(tǒng)將會給予的許可權限,請求只是進一步限制得到的許可。

安全策略包含了許多代碼組,這些組包含了根據(jù)證據(jù)應給予的許可權。代碼組描述的許可可提供給從特定的安全區(qū)域獲得的組合,或提供給由特定發(fā)行商簽名過的組合,等等。盡管隨CLR發(fā)行了一組默認的代碼組(及相關許可),但管理員可以對這些CLR安全的進行定置,以適合他們的特殊需求。記住,通過定義與證據(jù)相關的代碼組,任何東西都可以作為證據(jù)提交,只要安全策略可以使用它。

創(chuàng)建許可的的過程涉及到對證據(jù)的評估,以確定代碼組適用于哪個等級:企業(yè),機器,和用戶。策略按上面順序對這三個等級進行評估,然后創(chuàng)建交插了三個等級的許可設置。管理員可以將任何一個策略等級標記為終結(final),這樣做應付阻止在其它等級上對策略做進一步評估。例如,管理員可以在機器級別上對組合終止策略,這樣就會阻止用戶級策略對該組合的應用。

一旦策略完成,許可的最初設置也就創(chuàng)建了。組合通過從三個方面做出特定的請求可以優(yōu)化這些許可:

第一方面是指定為了使組合運行它必須擁有的最小許可設置。如果這些許可沒有給予,那么組合將不同調入到內存,并拋出例外。

第二,可以指定一組可選的許可。盡管組合希望存在這些許可,但如果無法獲得這些許可,它仍可以調入到內存。

最后,行為特別好的組合實際上會拒絕它們所不需的有風險的許可。這三個優(yōu)化選項是調入時作為聲明語句實現(xiàn)的。

在運行時,許可是根據(jù)代碼的執(zhí)行計算的。右側的圖總結了這個過程的發(fā)生順序。組合A3將它的證據(jù)和來自主機的證據(jù)提供給策略評估器。策略評估器在創(chuàng)建許可時也要考慮從組合得到的許可請求,G3。組合A3由組合A2調用,而A2又是由組合A1調用的。當組合A3執(zhí)行一個引發(fā)安全檢查的操作時,A2和A1獲得的許可同樣也要進行檢查,以確保它們擁有A3所請求的許可權限。在這個過程中,此過程稱為堆棧遍歷(walking),堆棧中每個組合的許可權限都要進行檢查以確定所給予的權限設置是否包含安全檢查所需要的許可。如果堆棧中的每個組合被給予了安全檢查所需要的許可,調用將成功。如何任何組合沒有給予所需要的許可,堆棧遍歷過程失敗,安全例外將被拋出。

主機和組合為策略評估器提供證據(jù),評估器使用安全策略和許可請求確定組合的許可權限。應用程序中不同運行組件的許可權限然后用于作出授權決定。

代碼訪問安全堆棧遍歷可以保護代碼不受攻擊。在精通的攻擊中,惡意代碼欺騙受信任代碼執(zhí)行它獨自不能運行的操作--有效地利用代碼的許可權限實現(xiàn)惡意的目的。對這類攻擊,開發(fā)人員很難進行防備--但堆棧遍歷確保了如果涉及到了低級信任等級的代碼,有效許可將被減少到信任等級最低的代碼具有的許可。

結果,代碼將從源處獲得不同的信任等級,并在適合于特定的代碼執(zhí)行環(huán)境的限制下運行。

一些活動,如讀寫文件,顯示對話框,讀寫環(huán)境變量,可以通過包含在框架安全構架中的.NET Framework方法實現(xiàn)。這就使.NET Framework能根據(jù)安全策略允許或不允許一個操作,而不需要程序員做額外的工作。盡管暴露了保護資源的管理類的創(chuàng)建者在他們的庫中做了明確的安全需求,使用.NET Framework類庫訪問受保護資源的開發(fā)人員可以自由地利用代碼訪問安全系統(tǒng);他們不必作出明確的安全調用。

管理員可以通過決定給予哪些許可來優(yōu)化安全策略,然后,依靠.NET Framework處理所有的安全操作。代碼訪問安全能阻止大部分的惡意攻擊,對代碼的驗證減少了緩存溢出和其它會導致安全攻擊的不期望的行為。因此,應用程序和組件生來就受到了保護,它們免于大多數(shù)安全問題的沖擊,而這些安全問題一直困繞著本地代碼的實現(xiàn)。

8.2 基于角色的安全

有時根據(jù)已認證的身份或根據(jù)與代碼執(zhí)行上下文相關的角色作出認證決定是合適的。比如,金融和企業(yè)軟件可以通過評估角色信息的企業(yè)邏輯加強策略。根據(jù)作出請求的用戶角色可以對金融交易的數(shù)據(jù)進行限制。出納被允許可以處理一定金額的請求,而多于該金額的所有工作需要監(jiān)督人的角色來處理。

身份可以映射到登錄系統(tǒng)的用戶,或由應用程序定義。相應的原則封裝了身份和其它相關的角色信息。

.NET Framework提供了一組加密對象,它們支持加密算法、數(shù)字簽名、散列、生成隨機數(shù),是通過眾所周知的運算法則實現(xiàn)的,如RSA, DSA, Rijndael/AES, Triple DES, DES, 和 RC2, 以及MD5, SHA1, SHA-256, SHA-384 和 SHA-512散列算法。同時還支持在IETF和W3C開發(fā)的XML數(shù)字簽名規(guī)范。.NET Framework使用加密對象支持內部服務。這些對象還作為管理代碼提供給需要加密支持的開發(fā)人員。

指定安全性,如果要對組合運行時的行為進行修改,根據(jù)程序員的需要,可以作出聲明式安全或強迫式安全的修改。

8.3 聲明式安全

聲明式安全使程序員可以直接在組合代碼的元數(shù)據(jù)中為組合指定安全需求。許可請求和所有其它形式的聲明式安全是在代碼中是作為定置屬性指定的。類,屬性和方法的注釋用于優(yōu)化許可。例如,聲明式安全可用于類的調用者在調用方法前檢查調用者是否被已知地行商簽名過,或有一個特定的強名。

由于聲明屬性是組合元數(shù)據(jù)的一部分,所以組合的安全需求易于辨別??梢允褂霉ぞ邔M合進行掃描,以發(fā)現(xiàn)哪些方法需要某些許可,哪些方法斷言了某些許可。

當被請求的活動和許可在編譯時是知道時,聲明式檢查可作為選擇的解決方案之一。例如,如果方法總是檢查對C:temp的寫訪問許可,那么許可檢查就會從聲明中得到好處。另一方面,如果被請求的具有訪問權的位置發(fā)生了變化,那么強迫式安全也許是一個比較好的解決方案。

8.4 強迫式安全

強迫式安全直接在代碼中實現(xiàn)。程序員通過程序采取安全活動,并且根據(jù)安全堆棧的狀態(tài)決定是給予還是拒絕許可。例如,當一個方法請求訪問一個特定的文件時,如果調用者(或方法的任何一個調用者)沒有被給予必需的許可權限,那么請求失敗。因為強迫式安全是通過程序實現(xiàn)的,所以滿足了動態(tài)需求。如果需要對一個特定文件的訪問許可,但該許可還要根據(jù)其它信息發(fā)生變化,那么,強迫式安全就是可選的解決方案。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
從 eMbedded Visual Basic 遷移到 Visual Basic .NET
.net框架
.NET Framework 各個版本的區(qū)別
保護 web 服務器
net framework是什么?net framework有什么用?
老徐的博客 ? Blog Archive ? .NET Framework 4與.NET Framework 4 Client Profile 的區(qū)別
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服