Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Problems presenting features of interest

K čemu je .NET security

Na věcech, které se nesmí, se Microsoft v .NET opravdu vyřádil. Tradiční "role-based security" (tj. omezení podle uživatele) zobecňuje .NET na "evidence-based security", tj. omezení podle celkem čehokoli. Praktický příklad:

Mám .NET komponentu (která není zadarmo), a chtěl bych k ní udělat demo aplikaci. Problém je, že přibalím-li komponentu k demu, může jí používat i jakýkoli jiný klient, a jak by řekl Jára Cimrman, to už pak snad ani není demo... Kdybych pracoval nad skutečným, nikoli virtuálním hardwarem, stačilo by zkompilovat do jednoho spustitelného souboru, ale .NET funguje jinak: veškerá rozhraní implementovaná v .NET assembly jsou z něj exportovaná - i když je to assembly třeba spustitelný soubor - a deklarovat rozhraní jako privátní nikomu nebrání, aby ho stejně nezavolal (akorát se to volání nedá přeložit, ale to je pouze omezení překladače - dynamický přístup pomocí reflexe funguje). Správným řešením je specifikovat povolení ("povolení" ve smyslu co není povoleno, je zakázáno), konkrétně StrongNameIdentityPermission.

Dokumentace Microsoftu k tomuto atributu není nijak zvlášť informativní; naštěstí už někdo udělal příklad. Popsaný postup mi připadá hodně nelogický - přidávání klíče zkompilované komponenty do jejích zdrojáků svědčí o totálním nezájmu architektů zabezpečovacího mechanismu o automatizovaný build - ale nic jiného holt nefunguje...

Published 14. října 2003 15:09 by vbarta

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems