Freigeben über


Sicherheit und Vertrauen

Das .NET Framework verfügt über ein Sicherheitsmodell, das Anwendungen je nach Ursprung unterschiedlich behandelt. Ausführbare Dateien und Assemblys, die vom Computer eines Benutzers stammen, werden in der Regel mit voller Vertrauenswürdigstellung ausgeführt. die gleichen ausführbaren Dateien und Assemblys über das Internet ausgeführt werden, werden in der Regel mit teilweiser Vertrauensstellung ausgeführt. Dadurch wird verhindert, 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 Vertrauensstufe 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, und Sie können in Code Access Security in Practicemehr Tiefe zum Sicherheitsmodell erhalten. Eine gute Übersicht über die Sicherheit von Bibliotheken (die besonders wichtig für UserControl Objekte auf einer Webseite) finden Sie in Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code, und weitere Sicherheitsinformationen zu verwalteten Steuerelementen finden Sie in Schreiben von sicher verwalteten Steuerelementen.

Erlaubnisse

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 VererbungDemand Sicherheitsaktion 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 Mitglieder, die in dieser Tabelle nicht aufgeführt sind.

Klasse oder Methode Erlaubnisse
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- Weitere Informationen finden Sie 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-

 

Anmerkung

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

 

Anmerkung

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

 

 

Weitere Überlegungen

Einige andere bekannte Sicherheitsaspekte sind:

  • Microsoft Internet Explorer 6 oder höher ist erforderlich, damit Websteuerelemente ordnungsgemäß funktionieren. Mit Internet Explorer 5.5 werden nur erste verwaltete Steuerelemente geladen; Zur Laufzeit können keine zusätzlichen Steuerelemente dynamisch geladen werden.
  • 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.