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.
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.
Notitie
Voor de klasse PenInputPanel, de volgende methoden en eigenschappen vereisen SecurityPermissionFlag.AllFlags: PenInputPanel(IntPtr), AttachedEditWindow, Busy, CommitPendingInput, CurrentPanel, DefaultPanel, EnableTsf, Factoid, Height, HorizontalOffset, InputFailed, left, MoveTo, PanelChanged, PanelMoving, Vernieuwen, Bovenste, VerticalOffset, Zichtbaar, VisibleChangeden breedte.
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.