共用方式為


安全性和信任

.NET Framework 有一個安全性模型,會根據應用程式的來源,以不同的方式處理應用程式。 來自用戶計算機的可執行檔和元件通常會完全信任執行;透過因特網執行的可執行檔和元件通常會以部分信任來執行。 這是為了防止惡意代碼讀取或修改其不應該存取的資訊,例如本機檔案、剪貼簿中的專案和其他資源。 如果可執行檔呼叫元件,接著會呼叫需要特定層級信任的另一個元件,則會套用鏈結中所有元件的最低信任層級。 不過,計算機上的系統管理員可以設定覆寫默認許可權的特定許可權。

安全性模型的概觀是在 Secure、Light-Weight Client-Side Controls中提供,而且您可以在實務 中取得安全性模型更深入的安全性模型。 如需連結庫安全性的良好概觀(對於網頁上的 UserControl 物件而言特別重要),請參閱從部分信任的程式代碼 使用連結庫中找到,以及在撰寫安全受控控件 中找到其他受管理控件的安全性資訊。

權限

平板計算機技術 API 中的大多數受控對象和成員都有兩個需求:

  • 執行一律是必要的。
  • InheritanceDemand 安全性動作發生時,需要 FullTrust。 這表示當衍生類別繼承類別或覆寫平板電腦 SDK 中的方法時,需要完全信任。

下表列出需要其他許可權的類別和成員。 指定類別的許可權也適用於此資料表中未列出的所有成員。

類別或方法 權限
CanPaste UIPermissionClipboard.AllClipboard
Ink.ClipboardCopy UIPermissionClipboard.OwnClipboard
Ink.ClipboardPaste UIPermissionClipboard.AllClipboard
InkCollector UIPermissionWindow.SafeTopLevelWindows
InkCollector(IntPtr) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
InkCollector.Handle UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode (請參閱下方附注)
InkEdit UIPermissionWindow.SafeTopLevelWindows
InkOverlay UIPermissionWindow.SafeTopLevelWindows
InkOverlay(IntPtr) UIPermissionWindow.SafeTopLevelWindows 和 SecurityPermissionFlag.UnmanagedCode
InkOverlay.Handle UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode (請參閱下方附注)
InkPicture UIPermissionWindow.SafeTopLevelWindows
PenInputPanel 請參閱下方的附註。
InkRenderer UIPermissionWindow.SafeTopLevelWindows
DrawDrawStroke UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
Renderer.InkSpaceToPixel(IntPtr,Point),Renderer.InkSpaceToPixel(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
Renderer.PixelToInkSpace(IntPtr,Point), Renderer.PixelToInkSpace(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
DynamicRenderer UIPermissionWindow.SafeTopLevelWindows
DynamicRenderer(IntPtr) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
RealTimeStylus UIPermissionWindow.SafeTopLevelWindows
RealTimeStylus(IntPtr),RealTimeStylus(IntPtr,Boolean),RealTimeStylus(IntPtr,Tablet) UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode

 

注意

建構函式通常最好使用控件,而不是句柄 (IntPtr),因為控件需要較少的許可權。 同樣地,最好使用 Graphics 物件,而不是 Renderer.Draw的句柄、Renderer.InkSpaceToPixel,以及 Renderer.PixelToInkSpace

 

注意

InkCollector.HandleInkOverlay.Handle 屬性不需要 SecurityPermissionFlag.UnmanagedCode 許可權,如果句柄適用於 Windows Form 控件,則為其他視窗。

 

 

其他考慮

其他一些已知的安全性考慮如下:

  • 需要Microsoft Internet Explorer 6 或更高版本,Web 控件才能正常運作。 使用 Internet Explorer 5.5 時,只會載入初始受控控件;您無法在執行時間動態載入其他控制件。
  • 如果您使用 Windows XP Service Pack 2 (SP2) 和 CLR1.0,則在 Internet Explorer 中擁有 Web 控件需要將網站新增為信任的網站,即使它們位於內部網路區域也一樣。 不過,當您這樣做時,它們將不再在信任的網站區域中執行,不過它們會在內部網路區域中執行。 CLR1.1 已修正此問題。