.NET Framework 有一個安全性模型,會根據應用程式的來源,以不同的方式處理應用程式。 來自用戶計算機的可執行檔和元件通常會完全信任執行;透過因特網執行的可執行檔和元件通常會以部分信任來執行。 這是為了防止惡意代碼讀取或修改其不應該存取的資訊,例如本機檔案、剪貼簿中的專案和其他資源。 如果可執行檔呼叫元件,接著會呼叫需要特定層級信任的另一個元件,則會套用鏈結中所有元件的最低信任層級。 不過,計算機上的系統管理員可以設定覆寫默認許可權的特定許可權。
安全性模型的概觀是在 Secure、Light-Weight Client-Side Controls中提供,而且您可以在實務 中取得安全性模型更深入的安全性模型。 如需連結庫安全性的良好概觀(對於網頁上的 UserControl 物件而言特別重要),請參閱從部分信任的程式代碼 使用連結庫中找到,以及在撰寫安全受控控件 中找到其他受管理控件的安全性資訊。
權限
平板計算機技術 API 中的大多數受控對象和成員都有兩個需求:
- 執行一律是必要的。
- 當 InheritanceDemand 安全性動作發生時,需要 FullTrust。 這表示當衍生類別繼承類別或覆寫平板電腦 SDK 中的方法時,需要完全信任。
下表列出需要其他許可權的類別和成員。 指定類別的許可權也適用於此資料表中未列出的所有成員。
注意
建構函式通常最好使用控件,而不是句柄 (IntPtr),因為控件需要較少的許可權。 同樣地,最好使用 Graphics 物件,而不是 Renderer.Draw的句柄、Renderer.InkSpaceToPixel,以及 Renderer.PixelToInkSpace。
注意
InkCollector.Handle 和 InkOverlay.Handle 屬性不需要 SecurityPermissionFlag.UnmanagedCode 許可權,如果句柄適用於 Windows Form 控件,則為其他視窗。
注意
針對 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 已修正此問題。