Frage

Wenn ich eine Azure ASP.NET-Anwendung erstellen, die standardmäßig .NET Vertrauensebene ist voll Vertrauen. Ich ändere es immer auf Windows Azure Teil Vertrauen, das auf ASP.NET-Medium Vertrauensebene ähnlich ist.

Sie können es entweder tun, indem GUI verwenden, wenn Sie wählen Sie Eigenschaften auf der Rolle oder durch enableNativeCodeExecution auf false in der Definitionsdatei Einstellung (.csdef) wie folgt:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

Als sicherheitsbewusste Entwickler ich standardmäßig möchte, dass meine Anwendung in teilweise vertrauenswürdigen Modus auszuführen, die ein höheres Maß an Sicherheit bietet. Wenn ich so etwas wie Reflexion oder P / Invoke, als Entwickler verwenden müssen, möchte ich die Entscheidung treffen, dass das Vertrauen Niveau von mir zu senken.

Ich bin sicher, es gibt einen Grund, warum Microsoft Volle Vertrauenswürdigkeit als Standard-.NET-Vertrauensebene zu entschieden, ich nicht nur um es zu sehen. Wenn Sie den Grund kennen, oder Sie denken, Sie wissen es, lass es mich wissen.

War es hilfreich?

Lösung

Volle Vertrauenswürdigkeit ist nicht nur für P / Invoke erforderlich für .NET Reflexion auch. Als Unterm Strich Ergebnis müssen fast alle mittelgroßen Anwendungen volles Vertrauen, weil fast alle verbreiteten Bibliotheken es brauchen auch (NHibernate zum Beispiel). Eigentlich habe ich von der genaue Gegenteil Frage auf die Azure-Foren zu.

Andere Tipps

Die Frage der vollständigen oder teilweisen Vertrauen bezieht sich auf die Umgebung, in der die Anwendung ausgeführt wird. Je mehr Kontrolle und / oder „Eigentum“ der Umwelt und Baugruppen, die Sie haben, desto mehr akzeptabel ist Vollbeglaubigungseinstellungen zu haben.

Zum Beispiel, wenn Sie eine Azure-Website (Juli 2012-Fähigkeit), und imitiert Wordpress oder Umbraco erstellen, Ihre Website ermöglicht beliebiger Montag Plugins heruntergeladen und installiert wird, dann ist es wichtig, eine teilweise vertrauenswürdige Umgebung zu haben. Es ist möglich, dass eines des Plugins heruntergeladen und ausgeführt, die Sie steuern oder eigenen nicht, Malware enthält. Dies hat nicht nur Auswirkungen die Sicherheit und Stabilität Ihrer Website, aber einige können es Auswirkungen andere argumentieren (Multi-Tenant) gehostete Web-Sites, die in keinem Verhältnis zu Ihnen haben.

wird sicherlich Ihre Website auf 3rd-Party-Bibliotheken verlassen, wie Log4Net oder StructureMap, aber die sind sehr gut bekannt und überprüft Bibliotheken, die nicht in Frage in Bezug auf ihre Auswirkungen auf die Sicherheit sind. Ergo, wenn Sie eine Azure Web-Rolle ausgeführt wird (ein viel weniger „Multi-Tenant“ Typ-Affäre) und man nur laufen solche „trusted“ 3rd party apps, dann gibt es wirklich kein Problem ist als Voll Vertrauen mit ausgeführt wird.

Ja, leider ist es immer noch sehr schwer (wenn nicht unmöglich) große .NET zu schreiben Apps, die laufen in Teil Vertrauen.

Wir brauchen viel bessere Technik und Werkzeuge (wie CAS.NET)

Da Medium Trust nun offiziell veraltet ist. Wenn Sie ein neues Webprojekt in Visual Studio starten, bedarf es schon voll vertrauenswürdige (und funktioniert nicht teilweise Vertrauen). Microsoft sagt: Verlassen Sie sich nicht auf Medium Trust, verwenden Sie stattdessen voll vertrauenswürdige und nicht vertrauenswürdige Isolat Anwendungen in separaten Anwendungspools

.

Quellen:

Antwort Stackoverflow: Zitat Antwort ASP.NET Team

Microsoft: ASP.NET Teil Vertrauen ist keine Garantie Anwendungsisolierung

Microsoft: ASP.NET Web-Entwicklung best Practices

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top