Ich habe zwei Webanwendungen (vorkompilierte Websites), eine davon ist first-party und wird mit voller Vertrauenswürdigkeit ausgeführt. Ein anderer ist ein Drittanbieter und sollte teilweise vertrauenswürdig sein (oder mit bestimmten Berechtigungen).
TrustedAssembly.Web.Pages.MyPage
sollte in der vollständigen Trust-Standardanwendungsdomäne ausgeführt werden.
UntrustedAssembly.Web.Pages.SomePage
sollte in einer AppDomain mit Teilvertrauensstellung ausgeführt werden.
Außerdem, wenn TrustedAssembly.Web.Pages.MyPage
UntrustedAssembly.Web.Controls.SomeControl
dynamisch lädt, ist es möglich, das Steuerelement teilweise vertrauenswürdig und / oder mit bestimmten Berechtigungen auszuführen, während die Seite unter voller Vertrauenswürdigkeit ausgeführt wird?
Und umgekehrt, z.B. UntrustedAssembly.Web.Controls.SomePage
lädt TrustedAssembly.Web.Controls.MyControl
dynamisch, ist es möglich, das Steuerelement vollständig vertrauenswürdig auszuführen, während die Seite unter teilweiser Vertrauenswürdigkeit ausgeführt wird?
Update / FYI: Das ist .NET 4
Dies ist wahrscheinlich ein bisschen schwierig. Hier sind zwei mögliche Gedankengänge:
Der erste Schritt besteht darin, die App in der mittleren Vertrauensstellung auszuführen, aber alles, was Sie ausführen möchten, vollständig in den GAC zu vertrauen, und was Sie teilweise in bon verwalten möchten.
Beachten Sie, dass das vertrauenswürdige Steuerelement in Ihrem "Umgekehrt" -Szenario möglicherweise eine Sicherheitsaktivierung ausführen muss, bevor Sie vollständige Vertrauensoperationen ausführen können. z.B.
%Vor%Der zweite Gedankengang besteht darin, die App in voller Vertrauenswürdigkeit auszuführen, aber dann eine beliebige Assembly, die Sie ausführen möchten, unter Verwendung einer benutzerdefinierten Evidence . z.B.
%Vor%Aber seien Sie sich bewusst, dass die korrekte Einrichtung des Beweisobjekts nichts für schwache Nerven ist, und ich bin mir nicht sicher, ob ich diesen Weg gehen würde.
Keine vollständige Antwort, aber hoffentlich einige Ideen, die zu einem führen können:)
+1 zu David Ebbo - das Ausführen einer ganzen App unter teilweiser Vertrauenswürdigkeit und Erhöhen für Aufrufe von GACed-Assembly ist nur ein vernünftiger Ansatz.
Noch ein paar Punkte zum Nachdenken ...
Tags und Links c# asp.net appdomain full-trust partial-trust