Sicherheit und Vertrauensstellung

.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ürdigkeit ausgeführt. die gleichen ausführbaren Dateien und Assemblys, die über das Internet ausgeführt werden, werden in der Regel mit teilweiser Vertrauenswürdigkeit ausgeführt. Dadurch soll verhindert werden, dass schädlicher 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 Vertrauensebene erfordert, wird die niedrigste Vertrauensebene aller Komponenten in der Kette angewendet. Ein Administrator auf einem Computer kann jedoch bestimmte Berechtigungen festlegen, die die Standardberechtigungen überschreiben.

Eine Übersicht über das Sicherheitsmodell finden Sie unter Secure, Light-Weight Client-Side Controls. Ausführlichere Informationen zum Sicherheitsmodell finden Sie unter Codezugriffssicherheit inder Praxis. Eine gute Übersicht über die Sicherheit von Bibliotheken (die insbesondere für UserControl-Objekte auf einer Webseite wichtig ist) finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigen Code.Weitere Sicherheitsinformationen zu verwalteten Steuerelementen finden Sie unter Schreiben sicherer verwalteter Steuerelemente.

Berechtigungen

Die meisten verwalteten Objekte und Member in der Api für Tablet PC-Technologien haben zwei Anforderungen:

  • Die Ausführung ist immer erforderlich.
  • FullTrust ist erforderlich, wenn die Vererbungsdemand-Sicherheitsaktion durchgeführt wird. Dies bedeutet, dass volle Vertrauenswürdigkeit erforderlich ist, wenn eine abgeleitete Klasse eine Klasse erbt oder eine Methode vom 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 in dieser Tabelle nicht 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 vorzuziehen, ein Steuerelement anstelle eines Handles (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 zuverwenden.

Hinweis

Die Eigenschaften InkCollector.Handle und InkOverlay.Handle erfordern keine SecurityPermissionFlag.UnmanagedCode-Berechtigung, wenn das Handle für ein Windows Forms-Steuerelement, aber für andere Fenster vorgesehen ist.

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änglich 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 in 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.