2009-08-30 16 views
5

Ich habe gerade gelesen, die folgend in der CLI-Spezifikation bezüglich SecurityExceptions auf Methodenaufrufe:Wann bewertet die .NET CLR Sicherheitsattribute?

Die Überprüfung der Sicherheit erfolgen kann, wenn der CIL zu nativen Code umgewandelt wird, anstatt zur Laufzeit.

Wie geht die Implementierung von Microsoft damit um?

Wenn zum Beispiel nur eine bestimmte Benutzergruppe auf eine Klasse zugreifen darf, habe ich ein Sicherheitsattribut für diese Gruppe platziert.

Wenn der Benutzer die Anwendung ausführt, wird sie aktiviert, und möglicherweise werden die Sicherheitsprüfungen zu diesem Zeitpunkt und nicht zur Laufzeit durchgeführt.

Wenn ja, speichert der Jitter das native Image, sodass es Probleme verursachen kann, wenn ich die Gruppe des Benutzers zu einem späteren Zeitpunkt ändere (d. H. Das zwischengespeicherte native Image spiegelt nicht seine aktualisierten Berechtigungen wider)? Oder wird es jedes Mal gezerrt, wenn ich das native Image vorinstalliere? Ich bin mir immer noch nicht ganz sicher, wie der native Image-Cache genau funktioniert.

+0

Gute Frage! Ich werde nach Antworten suchen. :-) –

Antwort

2

Jedes Jitted-Image ist nur im selben Sicherheitskontext gültig, in dem es erzeugt wird.

Dies gilt sowohl für den Cache als auch für ngen: ed-Assemblys.

Sobald der Loader erkennt, dass der aktuelle Sicherheitskontext abweicht, lädt er das IL-Image und JIT die Assembly.

Deshalb können Sie kein Bild auf Ihrem PC erstellen und an jemand anderen verteilen.

Dies gilt auch für die .Net-Kernbaugruppen. Sie werden bei der Installation (oder in der Warteschlange ngen) in den Sicherheitskontext auf dem Computer eingefügt.

Sie können mehr darüber lesen Sie hier: msdn ngen.exe

+0

Danke! Jetzt kann ich wieder friedlich schlafen. :) – Botz3000