{"id":305,"date":"2007-10-10T13:20:27","date_gmt":"2007-10-10T12:20:27","guid":{"rendered":"http:\/\/minibrain.wordpress.com\/2007\/10\/10\/net-applikationen-uber-das-netzwerk-starten\/"},"modified":"2007-10-10T13:20:27","modified_gmt":"2007-10-10T12:20:27","slug":"net-applikationen-uber-das-netzwerk-starten","status":"publish","type":"post","link":"https:\/\/abramowitsch.de\/blog\/?p=305","title":{"rendered":".NET Applikationen \u00fcber das Netzwerk starten"},"content":{"rendered":"<p>Den gr\u00f6\u00dften Teil meiner Arbeit besch\u00e4ftige ich mich mit der Interoperabilit\u00e4t von .NET-Anwendungen mit unmanaged C++-Code (no COM).  Dabei kommt es immer h\u00e4ufiger vor, dass Anwendungen vom Netz gestartet werden sollen.<\/p>\n<p>Die CAS (Code Access Security) verhindert dies, indem  sie der Anwendung die Rechte f\u00fcr LocalIntranet-Zone zuweist. Wenn man trotzdem die Anwendung vom Netzlaufwerk aus starten m\u00f6chte, muss man die CAS bem\u00fchen, der zu startenden Applikation volle Rechte zu geben (oder zumindest die ben\u00f6tigten Permissions).<\/p>\n<p>Dies geschiet mithilfe des Tools caspol.exe, welches bei jedem .NET Framework mitgeliefert wird. Es befindet sich im Standard-Installationsverzeichnis der jeweiligen .NET Framework-Version:<\/p>\n<p><em>{Windows-Verzeichnis}<\/em>Microsoft.NET<em>{.NET-Version}<\/em>caspol.exe<\/p>\n<p>Nun legen wir eine neue Codegruppe namens  &#8222;FullTrustFromNetworkShare&#8220; an:<\/p>\n<p>caspol -machine -addgroup All_Code -url \\serverpath* <strong>FullTrust<\/strong> -n FullTrustFromNetworkShare<\/p>\n<p>In der grafischen .NET Framework 2.0 Configuration sieht das nun wiefolgt aus:<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2007\/10\/dotnet_20_config_caspol.png\" title=\"dotnet_20_config_caspol.png\"><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2007\/10\/dotnet_20_config_caspol.thumbnail.png\" alt=\"dotnet_20_config_caspol.png\" \/><\/a><\/p>\n<p>Nat\u00fcrlich sollte man bei solchen Aktionen bedenken, dass man die Code-Zugriffssicherheit f\u00fcr das Verzeichnis quasi aushebelt und Sch\u00e4dlingen, die \u00fcber das Verzeichnis gestartet werden, alle Rechte gibt \ud83d\ude10<\/p>\n<p>Mehr Infos dazu gibts auf der MSDN-Seite zum CASPOL-Utility:\u00a0 <a href=\"http:\/\/msdn.microsoft.com\/library\/DEU\/cptools\/html\/cpgrfCodeAccessSecurityPolicyUtilityCaspolexe.asp\" target=\"_blank\">http:\/\/msdn.microsoft.com\/library\/DEU\/cptools\/html\/cpgrfCodeAccessSecurityPolicyUtilityCaspolexe.asp<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Den gr\u00f6\u00dften Teil meiner Arbeit besch\u00e4ftige ich mich mit der Interoperabilit\u00e4t von .NET-Anwendungen mit unmanaged C++-Code (no COM). Dabei kommt es immer h\u00e4ufiger vor, dass Anwendungen vom Netz gestartet werden sollen. Die CAS (Code Access Security) verhindert dies, indem sie der Anwendung die Rechte f\u00fcr LocalIntranet-Zone zuweist. Wenn man trotzdem die Anwendung vom Netzlaufwerk aus [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3,20],"tags":[],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-net","category-visual-studio-net"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Ug90-4V","_links":{"self":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305"}],"version-history":[{"count":0,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/305\/revisions"}],"wp:attachment":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}