安全性和信任
.NET Framework 的安全性模型會根據應用程式來源的不同,而以不同的方式處理應用程式。 來自使用者電腦的可執行檔和元件通常會以完全信任執行;相同的可執行檔和元件會透過網際網路執行,通常會以部分信任執行。 這是為了防止惡意程式碼讀取或修改不應存取的資訊,例如本機檔案、剪貼簿中的專案和其他資源。 如果可執行檔呼叫元件,接著會呼叫需要特定層級信任的另一個元件,則會套用鏈結中所有元件的最低信任層級。 不過,電腦上的系統管理員可以設定覆寫預設許可權的特定許可權。
安全、Light-Weight Client-Side控制項提供安全性模型的概觀,您可以在程式碼啟用安全性實務中取得安全性模型的更深入。 對於網頁中的 UserControl 物件而言, (對於程式庫的安全性有良好的概觀,) 可以在撰寫安全受管理控制項中找到 使用程式庫,而有關 Managed 控制項的其他安全性資訊則位於 撰寫安全受管理控制項中。
權限
平板電腦技術 API 中大部分受管理的物件和成員都有兩個需求:
- 一律需要執行。
- 當 InheritanceDemand 安全性動作發生時,需要 FullTrust。 這表示當衍生類別繼承類別或覆寫平板電腦 SDK 的方法時,需要完全信任。
下表列出需要其他許可權的類別和成員。 指定類別的許可權也適用于此表格中未列出的所有成員。
注意
通常最好是使用控制項,而不是針對建構函式使用 (IntPtr) 控制碼,因為控制項需要較少的許可權。 同樣地,最好使用 Graphics 物件,而不是 Renderer.Draw、 Renderer.InkSpaceToPixel 和 Renderer.PixelToInkSpace的控制碼。
注意
如果控制碼適用于Windows Forms控制項,InkCollector.Handle和InkOverlay.Handle屬性就不需要SecurityPermissionFlag.UnmanagedCode許可權,但對於其他視窗則為 。
注意
對於PenInputPanel類別,下列方法和屬性需要SecurityPermissionFlag.AllFlags:PenInputPanel (IntPtr) 、AttachedEditWindow、Busy、CommitPendingInput、CurrentPanel、DefaultPanel、EnableTsf、Factoid、Height、HorizontalOffset、InputFailed、Left、MoveTo、PanelChanged、PanelMoving、Refresh、Top、VerticalOffset、Visible、VisibleChanged和Width。
其他考量
一些其他已知的安全性考慮如下:
- 需要 Microsoft Internet Explorer 6 或更高版本,Web 控制項才能正常運作。 使用 Internet Explorer 5.5 時,只會載入初始受控控制項;您無法在執行時間動態載入其他控制項。
- 如果您使用 Windows XP Service Pack 2 (SP2) 和 CLR1.0,則 Internet Explorer 中的 Web 控制項需要將網站新增為信任的網站,即使它們位於內部網路區域也一樣。 不過,當您這樣做時,它們將不再在 [信任的網站] 區域中執行,不過它們會在內部網路區域中執行。 CLR1.1 已修正此問題。