Interoperation
Managed vs Unmanaged
- Managed 程式碼:在執行階段(CLR)控制之下執行的程式碼,如 C#/VB.NET 等語言所開發的程式碼。
- Unmanaged 程式碼:如 VB6/C/C++ 等語言所開發的程式碼。或者 COM 元件、ActiveX 介面及 Win32 API 函式,都是 Unmanaged 程式碼。
Interoperation 泛指由 Managed 程式碼與 Unmanaged 程式碼的互動。
Interoperation 泛指由 Managed 程式碼與 Unmanaged 程式碼的互動。
除了舊有的 COM 元件是 Unmanaged 程式碼之外,在 Windows 系統底下還有許多的 Windows APIs 是 .NET Framework 沒有包裝的。 這個章節就是要來認識如何叫用 Windows APIs.
如果在資料庫中 Catalog 和 Documents 之間已經建立了關連性(外部索引鍵),在 linq 語法中,此時不需要在 Catalog 和 Documents 之間使用「聯結」(Join), 就可以直接從 Catalog 物件存取 Documents 物件。
MS 在 .NET Framework 3.5 版中,引進一個新的功能,稱之為 LINQ (Language Integrated Query)。 它是一種針對集合元素進行查詢的語言,如此一來,不管你使用何種資料來源,只要該資料是實作 IEnumerable 介面的物件,都可以使用單一的 LINQ 語法去查詢處理。
LINQ 使用類似 SQL 查詢的語法:
from 子句指定查詢來源;
where 子句設定篩選條件;
order by 子句做排序;
group by 子句對資料分組,
select 子句回傳資料。
而且,LINQ 查詢也支援複雜的 join 語法,這樣就可以在程式語言中,直接執行複雜的連結運算,以達到資料搜尋的目的。
前一章節中,我們透過 RBS 架構下的驗證與授權機制 (Principal Permission),達到限制特定使用者或群組對程式碼的存取。
存取控制清單 (ACL) 也是一種權限控管的機制,是作業系統用來管控資源的使用權限檔案,如:資料夾、印表機、註冊機碼等。 它是由存取控制項 (ACE) 所組成,每一項 ACE 指明了某物件是否可被存取。 例如,若想阻止系統管理員以外的任何人讀取某個檔案,就可以建立一個特定的 ACE,並套用到該檔案的存取控制清單 (ACL) 即可。
ACL 包含二種類型:
當資料被永久性的儲存下來後或者於網路上傳輸的時候,都是很容易遭受攻擊的。 雖然有 CAS 可以用來控管應用程式的存取,或者 ACLs 可以用來保護資料,但是對有能力存取硬碟或網路的駭客而言,想要穿透軟體保護、截取資料或者修改資料是不難辦到的。 因此,對於一些隱私的資料,還必須使用加密的技術,進一步保護資料的完整性。 .Net Framewrok 提供數種加解密類別,可以用來支援各種型態的加解密需求,例如:對稱和非對稱加密、雜湊、數位簽章。
對稱加密法有個不好的問題,就是加密子與解密子雙方都要共享同一個金鑰。 非對稱加密法主要就是要克服這個弱點,它將金鑰分成公開金鑰 (public key) 與私密金鑰 (private key),所以一般也稱公開金鑰加密法。 該演算法中的公開金鑰是對外開放的,私密金鑰必須妥善保存,絕不可外洩;而使用公開金鑰加密的資料,必須使用相對應的私密金鑰才能解密,反之亦同。 所以,對稱加密法,其操作過程,通常雙方必須先交換公開金鑰,然後發送端使用對方的公開金鑰將明文轉成密文,接收端收到密文後,再以自已的私密金鑰進行解密。
由書上截取二句話:
所以說,雜湊(Hash)是將一堆資料進行一個總和運算後所得到的一個唯一檢查碼,又稱為雜湊值 (Hash Value) 。
雜湊演算是單向作業,不可逆的,也就是無法將雜湊值反導出原始資料,不像先前的加密作業,還可以解密回去。
當我們去銀行提款時,通常都需要蓋個章,用以保證這是你本人送交的東西。 在網路上傳送資料給對方,為了確保這資料是由你本人送出的,所以也需要在資料中蓋個章,這就是「數位簽章」的概念。 數位簽章相當於個人之印鑑,憑證相當於此印鑑之印鑑證明。電子化網路環境下,可利用憑證來驗證個人之數位簽章,以確認個人身分。