共用方式為


安全性和信任

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

安全、Light-Weight Client-Side控制項提供安全性模型的概觀,您可以在程式碼啟用安全性實務中取得安全性模型的更深入。 對於網頁中的 UserControl 物件而言, (對於程式庫的安全性有良好的概觀,) 可以在撰寫安全受管理控制項中找到 使用程式庫,而有關 Managed 控制項的其他安全性資訊則位於 撰寫安全受管理控制項中。

權限

平板電腦技術 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.DrawRenderer.InkSpaceToPixelRenderer.PixelToInkSpace的控制碼。

 

注意

如果控制碼適用于Windows Forms控制項,InkCollector.HandleInkOverlay.Handle屬性就不需要SecurityPermissionFlag.UnmanagedCode許可權,但對於其他視窗則為 。

 

 

其他考量

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

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