Sicherheit und Vertrauen

.NET Framework verfügt über ein Sicherheitsmodell, von dem Anwendungen je nach ihrem Ursprung verschieden behandelt werden. Ausführbare Dateien und Assemblys, die vom Computer eines Benutzers stammen, werden in der Regel mit voller Vertrauenswürdigung ausgeführt. Die gleichen ausführbaren Dateien und Assemblys werden im Internet in der Regel mit teilweiser Vertrauenswürdigung ausgeführt. Dadurch soll verhindert werden, dass bösartiger Code Informationen liest oder ändert, auf die er keinen Zugriff haben sollte, z. B. lokale Dateien, Elemente in der Zwischenablage und andere Ressourcen. Wenn eine ausführbare Datei eine Assembly aufruft, die wiederum eine andere Assembly aufruft, die eine bestimmte Vertrauensstufe erfordert, wird die niedrigste Vertrauensebene aller Komponenten in der Kette angewendet. Ein Administrator auf einem Computer kann jedoch bestimmte Berechtigungen festlegen, die die Standardberechtigungen außer Kraft setzen.

Eine Übersicht über das Sicherheitsmodell finden Sie unter Secure, Light-Weight Client-Side Controls. Weitere Informationen zum Sicherheitsmodell finden Sie unter Codezugriffssicherheit in der Praxis. Eine gute Übersicht über die Sicherheit von Bibliotheken (was besonders wichtig für UserControl-Objekte auf einer Webseite ist) finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code, und weitere Sicherheitsinformationen zu verwalteten Steuerelementen finden Sie unter Schreiben von sicher verwalteten Steuerelementen.

Berechtigungen

Die meisten verwalteten Objekte und Member in der Tablet PC Technologies-API haben zwei Anforderungen:

  • Die Ausführung ist immer erforderlich.
  • FullTrust ist erforderlich, wenn die Sicherheitsaktion VererbungDemand ausgeführt wird. Dies bedeutet, dass volle Vertrauenswürdigkeit erforderlich ist, wenn eine abgeleitete Klasse eine Klasse erbt oder eine Methode aus dem Tablet PC SDK überschreibt.

In der folgenden Tabelle sind die Klassen und Member aufgeführt, die zusätzliche Berechtigungen erfordern. Die Berechtigungen für eine bestimmte Klasse gelten auch für alle Member, die nicht in dieser Tabelle aufgeführt sind.

Klasse oder Methode Berechtigungen
Canpaste UIPermissionClipboard.AllClipboard
Ink.ClipboardCopy UIPermissionClipboard.OwnClipboard
Ink.ClipboardPaste UIPermissionClipboard.AllClipboard
Inkcollector UIPermissionWindow.SafeTopLevelWindows
InkCollector(IntPtr) UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
InkCollector.Handle UIPermissionWindow.AllWindows und SecurityPermissionFlag.UnmanagedCode (siehe Hinweis unten)
Inkedit UIPermissionWindow.SafeTopLevelWindows
Inkoverlay UIPermissionWindow.SafeTopLevelWindows
InkOverlay(IntPtr) UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
InkOverlay.Handle UIPermissionWindow.AllWindows und SecurityPermissionFlag.UnmanagedCode (siehe Hinweis unten)
Inkpicture UIPermissionWindow.SafeTopLevelWindows
Peninputpanel Siehe Hinweis weiter unten.
InkRenderer UIPermissionWindow.SafeTopLevelWindows
Draw, DrawStroke UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
Renderer.InkSpaceToPixel(IntPtr,Point), Renderer.InkSpaceToPixel(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
Renderer.PixelToInkSpace(IntPtr,Point), Renderer.PixelToInkSpace(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
DynamicRenderer UIPermissionWindow.SafeTopLevelWindows
DynamicRenderer(IntPtr) UIPermissionWindow.SafeTopLevelWindows und SecurityPermissionFlag.UnmanagedCode
Realtimestylus UIPermissionWindow.SafeTopLevelWindows
RealTimeStylus(IntPtr), RealTimeStylus(IntPtr,Boolean), RealTimeStylus(IntPtr,Tablet) UIPermissionWindow.AllWindows und SecurityPermissionFlag.UnmanagedCode

 

Hinweis

Es ist im Allgemeinen besser, ein Steuerelement anstelle eines Handle (IntPtr) für Konstruktoren zu verwenden, da Steuerelemente weniger Berechtigungen erfordern. Ebenso ist es besser, ein Graphics-Objekt anstelle eines Handles für Renderer.Draw, Renderer.InkSpaceToPixel und Renderer.PixelToInkSpace zu verwenden.

 

Hinweis

Für die Eigenschaften InkCollector.Handle und InkOverlay.Handle ist keine SecurityPermissionFlag.UnmanagedCode-Berechtigung erforderlich, wenn das Handle für ein Windows Forms-Steuerelement gilt, aber für andere Fenster.

 

 

Weitere Überlegungen

Einige andere bekannte Sicherheitsüberlegungen sind:

  • Microsoft Internet Explorer 6 oder höher ist erforderlich, damit Websteuerelemente ordnungsgemäß funktionieren. Mit Internet Explorer 5.5 werden nur anfängliche verwaltete Steuerelemente geladen. Sie können zur Laufzeit keine zusätzlichen Steuerelemente dynamisch laden.
  • Wenn Sie Windows XP Service Pack 2 (SP2) und CLR1.0 verwenden, müssen Websteuerelemente im Internet Explorer die Website als vertrauenswürdige Website hinzufügen, auch wenn sie sich in der Intranetzone befinden. Wenn Sie dies tun, werden sie jedoch nicht mehr in der Zone Vertrauenswürdige Website ausgeführt, obwohl sie in der Intranetzone ausgeführt werden. Dieses Problem wurde mit CLR1.1 behoben.