Delen via


Beveiliging en vertrouwen

Het .NET Framework heeft een beveiligingsmodel dat toepassingen verschillend behandelt, afhankelijk van hun oorsprong. Uitvoerbare bestanden en assembly's die afkomstig zijn van de computer van een gebruiker, worden over het algemeen uitgevoerd met volledige vertrouwensrelatie; dezelfde uitvoerbare bestanden en assembly's worden uitgevoerd via internet, meestal uitgevoerd met gedeeltelijke vertrouwensrelatie. Dit is om te voorkomen dat schadelijke code gegevens leest of wijzigt waar deze geen toegang toe mag hebben, zoals lokale bestanden, items op het Klembord en andere bronnen. Als een uitvoerbaar bestand een assembly aanroept, die op zijn beurt een andere assembly aanroept die een bepaald vertrouwensniveau vereist, wordt het laagste vertrouwensniveau van alle onderdelen in de keten toegepast. Een beheerder op een computer kan echter specifieke machtigingen instellen die de standaardmachtigingen overschrijven.

Een overzicht van het beveiligingsmodel wordt gegeven in Secure, Light-Weight Client-Side Controlsen u kunt meer informatie verkrijgen over het beveiligingsmodel in Code Access Security in Practice. Een goed overzicht van de beveiliging van bibliotheken (wat met name belangrijk is voor UserControl objecten op een webpagina) vindt u in Bibliotheken van gedeeltelijk vertrouwde codegebruiken en andere beveiligingsinformatie over beheerde besturingselementen vindt u in Beveiligde beheerde besturingselementen schrijven.

Machtigingen

De meeste beheerde objecten en leden in de TABLET PC Technologies-API hebben twee vereisten:

  • Uitvoering is altijd vereist.
  • FullTrust is vereist wanneer de Overnamedemand beveiligingsactie plaatsvindt. Dit betekent dat volledig vertrouwen vereist is wanneer een afgeleide klasse een klasse overschrijft of een methode overschrijft van de Tablet PC SDK.

De volgende tabel bevat de klassen en leden waarvoor extra machtigingen zijn vereist. De machtigingen voor een bepaalde klasse zijn ook van toepassing op alle leden die niet in deze tabel worden vermeld.

Klasse of methode Machtigingen
CanPaste- UIPermissionClipboard.AllClipboard
Ink.KlembordCopy- UIPermissionClipboard.OwnClipboard
Ink.KlembordPaste- UIPermissionClipboard.AllClipboard
InkCollector- UIPermissionWindow.SafeTopLevelWindows
InkCollector (IntPtr) UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
InkCollector.Handle UIPermissionWindow.AllWindows en SecurityPermissionFlag.UnmanagedCode (zie onderstaande opmerking)
InkEdit UIPermissionWindow.SafeTopLevelWindows
InkOverlay- UIPermissionWindow.SafeTopLevelWindows
InkOverlay(IntPtr) UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
InkOverlay.Handle UIPermissionWindow.AllWindows en SecurityPermissionFlag.UnmanagedCode (zie onderstaande opmerking)
InkPicture- UIPermissionWindow.SafeTopLevelWindows
PenInputPanel- Zie de opmerking hieronder.
InkRenderer- UIPermissionWindow.SafeTopLevelWindows
tekenen, DrawStroke- UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
Renderer.InkSpaceTo Pixel(IntPtr,Point), Renderer.InkSpaceTo Pixel(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
Renderer.PixelToInkSpace(IntPtr,Point), Renderer.PixelToInkSpace(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
DynamicRenderer- UIPermissionWindow.SafeTopLevelWindows
DynamicRenderer(IntPtr) UIPermissionWindow.SafeTopLevelWindows en SecurityPermissionFlag.UnmanagedCode
RealTimeStylus- UIPermissionWindow.SafeTopLevelWindows
RealTimeStylus(IntPtr), RealTimeStylus(IntPtr,Boolean), RealTimeStylus(IntPtr,Tablet) UIPermissionWindow.AllWindows en SecurityPermissionFlag.UnmanagedCode

 

Notitie

Het is over het algemeen de voorkeur om een besturingselement te gebruiken in plaats van een ingang (IntPtr) voor constructors, omdat voor besturingselementen minder machtigingen nodig zijn. Op dezelfde manier is het raadzaam om een grafisch object te gebruiken in plaats van een ingang voor Renderer.Draw, Renderer.InkSpaceTo PixelTo Pixel en Renderer.PixelToInkSpace.

 

Notitie

De eigenschappen InkCollector.Handle en InkOverlay.Handle zijn niet vereist SecurityPermissionFlag.UnmanagedCode machtiging als de ingang voor een Besturingselement Windows Forms is, maar wel voor andere vensters.

 

 

Andere overwegingen

Enkele andere bekende beveiligingsoverwegingen zijn:

  • Microsoft Internet Explorer 6 of hoger is vereist om webbesturingselementen goed te laten werken. Met Internet Explorer 5.5 worden alleen de eerste beheerde besturingselementen geladen; u kunt tijdens runtime geen extra besturingselementen dynamisch laden.
  • Als u Windows XP Service Pack 2 (SP2) en CLR1.0 gebruikt, moet u webbesturingselementen in Internet Explorer de site toevoegen als een vertrouwde site, zelfs als deze zich in de intranetzone bevinden. Wanneer u dit doet, worden ze echter niet meer uitgevoerd in de zone Vertrouwde site, hoewel ze wel worden uitgevoerd in de intranetzone. Dit probleem is opgelost met CLR1.1.