Microsoft .NET 2.0 Code Access Security (2)
Nou heb ik een beetje gekeken naar het Code Access Security model, en het is verdraaid gedetailleerd. Je kunt in principe op assembly-niveau aangeven wat deze assembly mag.
Een paar mooie artikelen die mij op weg hebben geholpen:
- DHTML and .NET: Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer; verschenen in MSDN Magazine van januari 2002, auteur Jay Allen;
- Return of the Rich Client: Code Access Security and Distribution Features in .NET Enhance Client-Side Apps; verschenen in MSDN Magazine van juni 2002, auteur Jason Clark;
- HOW TO: Use the IEHost Log to Debug .NET Object Hosting in Internet Explorer; Knowledge Base artikel 313892, verschenen in january 2004;
- Are You in the Know? Find Out What's New with Code Access Security in the .NET Framework 2.0; verschen in MSDN Magazine van november 2005, auteur Mike Downen;
- How to run a user control assembly that is hosted on Internet Information Services (IIS) in Internet Explorer; Knowledge Base artikel 892466, verschenen in mei 2007.
Klaarblijkelijk is het realiseren van een client-side user control nog steeds actueel!
Stap 1 is om je user control überhaupt aan de praat te krijgen in de IEHost container. Dan is het erg makkelijk als je weet dat IEHost een debug log kan wegschrijven, zie dus KB313892.
Zodra de user control eenmaal wordt gerenderd in Internet Explorer en je krijgt een security permission exception, dan is het prettig als je weet welke permissie je control precies moet krijgen. De uitgebreide exception tekst helpt je hier helaas niet bij!
Hoe achterhaal je dan de precieze gewenste permissie dan wel? Na wat googlen kwam ik de volgende blog tegen: stackenbloggen - "getting root on the managed world"; de bijdrage van 12 april 2007: CAS Tools & Best Practices. Hij schrijft over een toolset die hij heeft gemaakt in de context van een project die je mag downloaden. Helaas werkt de download-link niet.
Ik zit dus nog steeds met mijn handen in het haar, wat wil mijn control nou precies?
Omwille van desinteresse en tijdgebrek heb ik besloten om mijn control Full Trust te geven. Sssst, niet doorvertellen...
Wat ook een teleurstelling is, de gebruiker krijgt niet zoals bij een ActiveX control een mooie dialoog waarmee hij de control de rechten kan toekennen!
In de volgende blog meer.
Reacties