Sicherheit (WPF)Security (WPF)

Beim Entwickeln von eigenständigen und im Browser gehosteten Anwendungen für Windows Presentation Foundation (WPF) müssen Sie das Sicherheitsmodell in Erwägung gezogen.When developing Windows Presentation Foundation (WPF) standalone and browser-hosted applications, you must consider the security model. WPFWPFeigenständige Anwendungen werden mit uneingeschränkten Berechtigungen (CASFullTrust -Berechtigungs Satz) ausgeführt, unabhängig davon, ob Sie mit Windows Installer (MSI), xcopy oder ClickOnce bereitgestellt werden.standalone applications execute with unrestricted permissions ( CASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnce. Die Bereitstellung teilweise vertrauenswürdiger eigenständiger WPF-Anwendungen mit ClickOnce wird nicht unterstützt.Deploying partial-trust, standalone WPF applications with ClickOnce is unsupported. Allerdings kann eine voll vertrauenswürdige Host Anwendung eine teilweise Vertrauens AppDomain würdige Anwendung mithilfe des .NET Framework Add-in-Modells erstellen.However, a full-trust host application can create a partial-trust AppDomain using the .NET Framework Add-in model. Weitere Informationen finden Sie unter Übersicht über WPF-Add-ins.For more information, see WPF Add-Ins Overview.

WPFWPFim Browser gehostete Anwendungen werden von Windows Internet Explorer oder Firefox gehostet. Weitere Informationen finden XAML-Browseranwendungen (XAML browser applications; XBAPs)XAML browser applications (XBAPs) Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Sie unter Übersicht über WPF-XAML-Browser Anwendungen.browser-hosted applications are hosted by Windows Internet Explorer or Firefox, and can be either XAML-Browseranwendungen (XAML browser applications; XBAPs)XAML browser applications (XBAPs) or loose Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) documents For more information, see WPF XAML Browser Applications Overview.

WPFWPFim Browser gehostete Anwendungen werden standardmäßig in einer teilweise vertrauenswürdigen Sicherheits Sandbox ausgeführt, die auf den Standard Berechtigungs Satz der CAS-Internet Zone beschränkt ist.browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASInternet zone permission set. Dadurch werden vom WPFWPF Browser gehostete Anwendungen praktisch auf die gleiche Weise isoliert wie herkömmliche Webanwendungen.This effectively isolates WPFWPF browser-hosted applications from the client computer in the same way that you would expect typical Web applications to be isolated. Eine XBAP kann, abhängig von der Sicherheitszone der Bereitstellungs-URL und der Sicherheitskonfiguration des Clients, Berechtigungen bis zur vollen Vertrauenswürdigkeit erhöhen.An XBAP can elevate privileges, up to Full Trust, depending on the security zone of the deployment URL and the client's security configuration. Weitere Informationen finden Sie unter WPF-Sicherheit mit teilweiser Vertrauenswürdigkeit.For more information, see WPF Partial Trust Security.

In diesem Thema wird das Sicherheitsmodell für eigenständige und im Browser gehostete WPF-Anwendungen (Windows Presentation Foundation) erläutert.This topic discusses the security model for Windows Presentation Foundation (WPF) standalone and browser-hosted applications.

Dieses Thema enthält folgende Abschnitte:This topic contains the following sections:

Sichere NavigationSafe Navigation

Für XBAPsXBAPs unterWPFWPF scheidet zwei Navigations Typen: Anwendung und Browser.For XBAPsXBAPs, WPFWPF distinguishes two types of navigation: application and browser.

Als Anwendungsnavigation wird die Navigation zwischen Inhaltselementen in einer Anwendung bezeichnet, die in einem Browser gehostet wird.Application navigation is navigation between items of content within an application that is hosted by a browser. Als Browsernavigation wird die Navigation bezeichnet, die die Inhalts- und Speicherort-URL eines Browsers selbst ändert.Browser navigation is navigation that changes the content and location URL of a browser itself. Die Beziehung zwischen Anwendungs Navigation (normalerweise XAML) und Browser Navigation (in der Regel HTML) wird in der folgenden Abbildung dargestellt:The relationship between application navigation (typically XAML) and browser navigation (typically HTML) is shown in the following illustration:

Beziehung zwischen Anwendungs Navigation und Browser Navigation.

Der Inhaltstyp, der für ein XBAPXBAP als sicher eingestuft wird, hängt in erster Linie davon ab, ob die Anwendungs Navigation oder Browser Navigation verwendet wird.The type of content that is considered safe for an XBAPXBAP to navigate to is primarily determined by whether application navigation or browser navigation is used.

Sicherheit von AnwendungsnavigationApplication Navigation Security

Die Anwendungs Navigation wird als sicher betrachtet, wenn Sie mit einem Paket URIURIidentifiziert werden kann, das vier Arten von Inhalten unterstützt:Application navigation is considered safe if it can be identified with a pack URIURI, which supports four types of content:

InhaltstypContent Type BeschreibungDescription URI-BeispielURI Example
RessourceResource Dateien, die einem Projekt mit dem Buildtyp Ressourcehinzugefügt werden.Files that are added to a project with a build type of Resource. pack://application:,,,/MyResourceFile.xaml
InhaltContent Dateien, die einem Projekt mit dem Buildtyp Inhalthinzugefügt werden.Files that are added to a project with a build type of Content. pack://application:,,,/MyContentFile.xaml
UrsprungswebsiteSite of origin Dateien, die einem Projekt mit dem Buildtyp " keine" hinzugefügt werden.Files that are added to a project with a build type of None. pack://siteoforigin:,,,/MySiteOfOriginFile.xaml
AnwendungscodeApplication code XAML-Ressourcen mit kompiliertem Code-BehindXAML resources that have a compiled code-behind.

-oder--or-

XAML-Dateien, die einem Projekt mit dem Buildtyp Pagehinzugefügt werden.XAML files that are added to a project with a build type of Page.
pack://application:,,,/MyResourceFile .xamlpack://application:,,,/MyResourceFile .xaml

Hinweis

Weitere Informationen zu Anwendungs Datendateien und zum Paket URIsURIsfinden Sie unter WPF-Anwendungs Ressource, Inhalts-und Datendateien.For more information about application data files and pack URIsURIs, see WPF Application Resource, Content, and Data Files.

Ein Navigieren zu Dateien dieser Inhaltstypen kann sowohl durch einen Benutzer als auch programmgesteuert erfolgen:Files of these content types can be navigated to by either the user or programmatically:

  • Benutzernavigation.User Navigation. Der Benutzer navigiert, indem er Hyperlink auf ein-Element klickt.The user navigates by clicking a Hyperlink element.

  • Programmgesteuerte NavigationProgrammatic Navigation. Die Anwendung navigiert, ohne den Benutzer einzubeziehen, z. b. durch NavigationWindow.Source Festlegen der-Eigenschaft.The application navigates without involving the user, for example, by setting the NavigationWindow.Source property.

Sicherheit von BrowsernavigationBrowser Navigation Security

Browsernavigation wird nur unter den folgenden Bedingungen als sicher betrachtet:Browser navigation is considered safe only under the following conditions:

  • Benutzernavigation.User Navigation. Der Benutzer navigiert NavigationWindow, indem er Hyperlink auf ein-Element klickt, das sich Framenicht in einem geschachtelten, sondern auf ein Element befindet.The user navigates by clicking a Hyperlink element that is within the main NavigationWindow, not in a nested Frame.

  • Zone.Zone. Der Inhalt, in dem navigiert wird, befindet sich im Internet oder im lokalen Intranet.The content being navigated to is located on the Internet or the local intranet.

  • Protokoll.Protocol. Das verwendete Protokoll ist entweder http, https, Fileoder mailto.The protocol being used is either http, https, file, or mailto.

Wenn versucht, auf eine Weise zu Inhalten zu navigieren, die diese Bedingungen nicht erfüllt, wird eine SecurityException ausgelöst. XBAPXBAPIf an XBAPXBAP attempts to navigate to content in a manner that does not comply with these conditions, a SecurityException is thrown.

Sicherheitseinstellungen für webbrowsende SoftwareWeb Browsing Software Security Settings

Die Sicherheitseinstellungen auf dem Computer bestimmen, welcher Zugriff jeder webbrowsenden Software gewährt wird.The security settings on your computer determine the access that any Web browsing software is granted. Die Webbrowsersoftware umfasst alle Anwendungen oder Komponenten, die die WinInet -oder URLMON -APIs verwenden, einschließlich Internet Explorer und PresentationHost. exe.Web browsing software includes any application or component that uses the WinINet or UrlMon APIs, including Internet Explorer and PresentationHost.exe.

Internet Explorer bietet einen Mechanismus, mit dem Sie die Funktionalität konfigurieren können, die von oder aus Internet Explorer ausgeführt werden darf, einschließlich der folgenden:Internet Explorer provides a mechanism by which you can configure the functionality that is allowed to be executed by or from Internet Explorer, including the following:

  • .NET Framework abhängige Komponenten.NET Framework-reliant components

  • ActiveX-Steuerelemente und Plug-InsActiveX controls and plug-ins

  • DownloadsDownloads

  • SkripterstellungScripting

  • BenutzerauthentifizierungUser Authentication

Die Sammlung von Funktionen, die auf diese Weise gesichert werden können, wird für die Zonen Internet, Intranet, Vertrauenswürdige Sitesund Eingeschränkte Sites pro Zone konfiguriert.The collection of functionality that can be secured in this way is configured on a per-zone basis for the Internet, Intranet, Trusted Sites, and Restricted Sites zones. Die folgenden Schritte beschreiben, wie die Sicherheitseinstellungen konfiguriert werden:The following steps describe how to configure your security settings:

  1. Öffnen Sie die Systemsteuerung.Open Control Panel.

  2. Klicken Sie auf Netzwerk und Internet , und klicken Sie dann auf Internetoptionen.Click Network and Internet and then click Internet Options.

    Das Dialogfeld "Internetoptionen" wird angezeigt.The Internet Options dialog box appears.

  3. Wählen Sie auf der Registerkarte Sicherheit die Zone aus, für die Sie die Sicherheitseinstellungen konfigurieren möchten.On the Security tab, select the zone to configure the security settings for.

  4. Klicken Sie auf die Schaltfläche benutzerdefinierte Ebene .Click the Custom Level button.

    Das Dialogfeld Sicherheitseinstellungen wird angezeigt, und Sie können die Sicherheitseinstellungen für die ausgewählte Zone konfigurieren.The Security Settings dialog box appears and you can configure the security settings for the selected zone.

    Screenshot, der das Dialogfeld "Sicherheitseinstellungen" anzeigt.

Hinweis

Sie können auch aus Internet Explorer zum Dialogfeld „Internetoptionen“ gelangen.You can also get to the Internet Options dialog box from Internet Explorer. Klicken Sie auf Extras und dann auf Internet Optionen.Click Tools and then click Internet Options.

Ab Windows Internet Explorer 7 sind die folgenden Sicherheitseinstellungen speziell für .NET Framework enthalten:Starting with Windows Internet Explorer 7, the following security settings specifically for .NET Framework are included:

  • Loose XAML.Loose XAML. Steuert, ob Internet Explorer zu Dateien navigieren und XAMLXAML diese verlieren kann.Controls whether Internet Explorer can navigate to and loose XAMLXAML files. (Optionen „Aktivieren“, „Deaktivieren“ und „Bestätigen“.)(Enable, Disable, and Prompt options).

  • XAML-Browseranwendungen.XAML browser applications. Steuert, ob Internet Explorer navigiert und ausgeführt XBAPsXBAPswerden kann.Controls whether Internet Explorer can navigate to and run XBAPsXBAPs. (Optionen „Aktivieren“, „Deaktivieren“ und „Bestätigen“.)(Enable, Disable, and Prompt options).

Standardmäßig sind diese Einstellungen für die Zonen " Internet", " Lokales Intranet" und " Vertrauenswürdige Sites " aktiviert und für die Zone der eingeschränkten Sites deaktiviert.By default, these settings are all enabled for the Internet, Local intranet, and Trusted sites zones, and disabled for the Restricted sites zone.

Zusätzlich zu den Sicherheitseinstellungen, die über die Internetoptionen verfügbar sind, sind die folgenden Registrierungswerte für die selektive Blockierung einiger sicherheitsrelevanter WPF-Funktionen verfügbar.In addition to the security settings available through the Internet Options, the following registry values are available for selectively blocking a number of security-sensitive WPF features. Die Werte werden unter dem folgenden Schlüssel definiert:The values are defined under the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Features

In der folgenden Tabelle sind die Werte aufgelistet, die festgelegt werden können.The following table lists the values that can be set.

WertnameValue Name WerttypValue Type WertdatenValue Data
XBAPDisallowXBAPDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
LooseXamlDisallowLooseXamlDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
WebBrowserDisallowWebBrowserDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
MediaAudioDisallowMediaAudioDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
MediaImageDisallowMediaImageDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
MediaVideoDisallowMediaVideoDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.
ScriptInteropDisallowScriptInteropDisallow REG_DWORDREG_DWORD 1 = nicht zulassen; 0 = zulassen1 to disallow; 0 to allow.

WebBrowser-Steuerelement und FunktionssteuerelementeWebBrowser Control and Feature Controls

Das WPF WebBrowser -Steuerelement kann zum Hosten von Webinhalt verwendet werden.The WPF WebBrowser control can be used to host Web content. Das WPF WebBrowser -Steuerelement umfasst das zugrunde liegende WebBrowser-ActiveX-SteuerelementThe WPF WebBrowser control wraps the underlying WebBrowser ActiveX control. WPF bietet Unterstützung für das Sichern Ihrer Anwendung, wenn Sie das WPF WebBrowser -Steuerelement zum Hosten von nicht vertrauenswürdigem Webinhalt verwenden.WPF provides some support for securing your application when you use the WPF WebBrowser control to host untrusted Web content. Einige Sicherheitsfeatures müssen jedoch direkt von den Anwendungen angewendet werden, die das WebBrowser -Steuerelement verwenden.However, some security features must be applied directly by the applications using the WebBrowser control. Weitere Informationen zum WebBrowser-ActiveX-Steuerelement finden Sie unter WebBrowser-Steuerelement Übersichten und Tutorials.For more information about the WebBrowser ActiveX control, see WebBrowser Control Overviews and Tutorials.

Hinweis

Dieser Abschnitt gilt auch für das Frame -Steuerelement, da WebBrowser es den verwendet, um zu HTML-Inhalt zu navigieren.This section also applies to the Frame control since it uses the WebBrowser to navigate to HTML content.

Wenn das WPF WebBrowser -Steuerelement zum Hosten von nicht vertrauenswürdigem Webinhalt verwendet wird, sollte Ihre AppDomain Anwendung eine partielle Vertrauensstellung verwenden, um den Anwendungscode vor potenziell schädlichem HTML-Skriptcode zu isolieren.If the WPF WebBrowser control is used to host untrusted Web content, your application should use a partial-trust AppDomain to help insulate your application code from potentially malicious HTML script code. Dies trifft vor allem dann zu, wenn die Anwendung mit dem gehosteten Skript interagiert, indem ObjectForScripting die InvokeScript -Methode und die-Eigenschaft verwendet werden.This is especially true if your application is interacting with the hosted script by using the InvokeScript method and the ObjectForScripting property. Weitere Informationen finden Sie unter Übersicht über WPF-Add-ins.For more information, see WPF Add-Ins Overview.

Wenn Ihre Anwendung das WPF WebBrowser -Steuerelement verwendet, besteht eine weitere Möglichkeit zur Erhöhung der Sicherheit und Entschärfung von Angriffen darin, Internet Explorer-Funktions Steuerelemente zu aktivierenIf your application uses the WPF WebBrowser control, another way to increase security and mitigate attacks is to enable Internet Explorer feature controls. Funktions Steuerelemente sind Ergänzungen zu Internet Explorer, mit denen Administratoren und Entwickler Funktionen von Internet Explorer und Anwendungen konfigurieren können, die das WebBrowser-ActiveX-Steuerelement WebBrowser hosten, das vom WPF-Steuerelement umschlossen wird.Feature controls are additions to Internet Explorer that allow administrators and developers to configure features of Internet Explorer and applications that host the WebBrowser ActiveX control, which the WPF WebBrowser control wraps. Funktions Steuerelemente können mithilfe der cointernetsetfeatureaktivierten Funktion oder durch Ändern von Werten in der Registrierung konfiguriert werden.Feature controls can be configured by using the CoInternetSetFeatureEnabled function or by changing values in the registry. Weitere Informationen zu Funktions Steuerelementen finden Sie unter Einführung in Funktions Steuerelemente und Internet Funktions Steuerelemente.For more information about feature controls, see Introduction to Feature Controls and Internet Feature Controls.

Wenn Sie eine eigenständige WPF-Anwendung entwickeln, die das WPF WebBrowser -Steuerelement verwendet, aktiviert WPF automatisch die folgenden Featuresteuerelemente für Ihre Anwendung.If you are developing a standalone WPF application that uses the WPF WebBrowser control, WPF automatically enables the following feature controls for your application.

FunktionssteuerelementFeature Control
FEATURE_MIME_HANDLINGFEATURE_MIME_HANDLING
FEATURE_MIME_SNIFFINGFEATURE_MIME_SNIFFING
FEATURE_OBJECT_CACHINGFEATURE_OBJECT_CACHING
FEATURE_SAFE_BINDTOOBJECTFEATURE_SAFE_BINDTOOBJECT
FEATURE_WINDOW_RESTRICTIONSFEATURE_WINDOW_RESTRICTIONS
FEATURE_ZONE_ELEVATIONFEATURE_ZONE_ELEVATION
FEATURE_RESTRICT_FILEDOWNLOADFEATURE_RESTRICT_FILEDOWNLOAD
FEATURE_RESTRICT_ACTIVEXINSTALLFEATURE_RESTRICT_ACTIVEXINSTALL
FEATURE_ADDON_MANAGEMENTFEATURE_ADDON_MANAGEMENT
FEATURE_HTTP_USERNAME_PASSWORD_DISABLEFEATURE_HTTP_USERNAME_PASSWORD_DISABLE
FEATURE_SECURITYBANDFEATURE_SECURITYBAND
FEATURE_UNC_SAVEDFILECHECKFEATURE_UNC_SAVEDFILECHECK
FEATURE_VALIDATE_NAVIGATE_URLFEATURE_VALIDATE_NAVIGATE_URL
FEATURE_DISABLE_TELNET_PROTOCOLFEATURE_DISABLE_TELNET_PROTOCOL
FEATURE_WEBOC_POPUPMANAGEMENTFEATURE_WEBOC_POPUPMANAGEMENT
FEATURE_DISABLE_LEGACY_COMPRESSIONFEATURE_DISABLE_LEGACY_COMPRESSION
FEATURE_SSLUXFEATURE_SSLUX

Da diese Funktionssteuerelemente bedingungslos aktiviert werden, können sie möglicherweise voll vertrauenswürdige Anwendungen beeinträchtigen.Since these feature controls are enabled unconditionally, a full-trust application might be impaired by them. In diesem Fall kann das entsprechende Funktionssteuerelement deaktiviert werden, wenn kein Sicherheitsrisiko für die jeweilige Anwendung und den gehosteten Inhalt besteht.In this case, if there is no security risk for the specific application and the content it is hosting, the corresponding feature control can be disabled.

Funktions Steuerelemente werden durch den Prozess angewendet, der das WebBrowser-ActiveX-Objekt instanziiert.Feature controls are applied by the process instantiating the WebBrowser ActiveX object. Daher wird unbedingt empfohlen, beim Erstellen einer eigenständigen Anwendung, die zu nicht vertrauenswürdigem Inhalt navigieren kann, zusätzliche Funktionssteuerelemente zu aktivieren.Therefore, if you are creating a stand-alone application that can navigate to untrusted content, you should seriously consider enabling additional feature controls.

Hinweis

Diese Empfehlung basiert auf allgemeinen Empfehlungen für MSHTML- und SHDOCVW-Hostsicherheit.This recommendation is based on general recommendations for MSHTML and SHDOCVW host security. Weitere Informationen finden Sie in den häufig gestellten Fragen zur Sicherheit des MSHTML-Hosts: Teil I von II und häufig gestellte Fragen zur Sicherheit des MSHTML-Hosts: Teil II von II.For more information, see The MSHTML Host Security FAQ: Part I of II and The MSHTML Host Security FAQ: Part II of II.

Für eine ausführbare Datei sollten die folgenden Funktionssteuerelemente aktiviert werden, indem der Registrierungswert auf 1 festgelegt wird.For your executable, consider enabling the following feature controls by setting the registry value to 1.

FunktionssteuerelementFeature Control
FEATURE_ACTIVEX_REPURPOSEDETECTIONFEATURE_ACTIVEX_REPURPOSEDETECTION
FEATURE_BLOCK_LMZ_IMGFEATURE_BLOCK_LMZ_IMG
FEATURE_BLOCK_LMZ_OBJECTFEATURE_BLOCK_LMZ_OBJECT
FEATURE_BLOCK_LMZ_SCRIPTFEATURE_BLOCK_LMZ_SCRIPT
FEATURE_RESTRICT_RES_TO_LMZFEATURE_RESTRICT_RES_TO_LMZ
FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7FEATURE_RESTRICT_ABOUT_PROTOCOL_IE7
FEATURE_SHOW_APP_PROTOCOL_WARN_DIALOGFEATURE_SHOW_APP_PROTOCOL_WARN_DIALOG
FEATURE_LOCALMACHINE_LOCKDOWNFEATURE_LOCALMACHINE_LOCKDOWN
FEATURE_FORCE_ADDR_AND_STATUSFEATURE_FORCE_ADDR_AND_STATUS
FEATURE_RESTRICTED_ZONE_WHEN_FILE_NOT_FOUNDFEATURE_RESTRICTED_ZONE_WHEN_FILE_NOT_FOUND

Für eine ausführbare Datei sollte das folgenden Funktionssteuerelement deaktiviert werden, indem der Registrierungswert auf 0 festgelegt wird.For your executable, consider disabling the following feature control by setting the registry value to 0.

FunktionssteuerelementFeature Control
FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPTFEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT

Wenn Sie eine teilweise Vertrauens XAML-Browseranwendung (XBAP)XAML browser application (XBAP) würdige Anwendung ausführen, die ein WPF WebBrowser -Steuerelement in Windows Internet Explorer enthält, hostet WPF das WebBrowser-ActiveX-Steuerelement im Adressraum des Internet Explorer-Prozesses.If you run a partial-trust XAML-Browseranwendung (XBAP)XAML browser application (XBAP) that includes a WPF WebBrowser control in Windows Internet Explorer, WPF hosts the WebBrowser ActiveX control in the address space of the Internet Explorer process. Da das WebBrowser-ActiveX-Steuerelement im Internet Explorer-Prozess gehostet wird, sind alle Featuresteuerelemente für Internet Explorer auch für das WebBrowser-ActiveX-Steuerelement aktiviert.Since the WebBrowser ActiveX control is hosted in the Internet Explorer process, all of the feature controls for Internet Explorer are also enabled for the WebBrowser ActiveX control.

XBAPs, die in Internet Explorer ausgeführt werden, haben im Vergleich zu normalen eigenständigen Anwendungen ebenfalls ein höheres Maß an Sicherheit.XBAPs running in Internet Explorer also get an additional level of security compared to normal standalone applications. Diese zusätzliche Sicherheit besteht darin, dass Internet Explorer und somit das WebBrowser-ActiveX-Steuerelement in Windows VistaWindows Vista und Windows 7Windows 7standardmäßig im geschützten Modus ausgeführt wird.This additional security is because Internet Explorer, and therefore the WebBrowser ActiveX control, runs in protected mode by default on Windows VistaWindows Vista and Windows 7Windows 7. Weitere Informationen zum geschützten Modus finden Sie unter Understanding and working in Protected Mode Internet Explorer.For more information about protected mode, see Understanding and Working in Protected Mode Internet Explorer.

Hinweis

Wenn Sie versuchen, eine XBAP auszuführen, die ein WPF WebBrowser -Steuerelement in Firefox enthält, wird in der Internet SecurityException Zone eine ausgelöst.If you try to run an XBAP that includes a WPF WebBrowser control in Firefox, while in the Internet zone, a SecurityException will be thrown. Dies geschieht aufgrund der WPF-Sicherheitsrichtlinie.This is due to WPF security policy.

Deaktivieren von APTCA-Assemblys für teilweise vertrauenswürdige ClientanwendungenDisabling APTCA Assemblies for Partially Trusted Client Applications

Wenn verwaltete Assemblys im globalen Assemblycache (Global Assembly Cache, GAC) installiert werden, werden Sie vollständig vertrauenswürdig, da der Benutzer explizite Berechtigungen zur Installation bereitstellen muss.When managed assemblies are installed into the global assembly cache (GAC), they become fully trusted because the user must provide explicit permission to install them. Da sie voll vertrauenswürdig sind, können sie nur von voll vertrauenswürdigen verwalteten Clientanwendungen verwendet werden.Because they are fully trusted, only fully trusted managed client applications can use them. Damit Sie von teilweise vertrauenswürdigen Anwendungen verwendet werden können, müssen Sie mit dem AllowPartiallyTrustedCallersAttribute (APTCA) markiert werden.To allow partially trusted applications to use them, they must be marked with the AllowPartiallyTrustedCallersAttribute (APTCA). Mit diesem Attribut sollten nur Assemblys markiert werden, für die bei Tests nachgewiesen wurde, dass sie bei Ausführung in teilweiser Vertrauenswürdigkeit sicher sind.Only assemblies that have been tested to be safe for execution in partial trust should be marked with this attribute.

Es ist jedoch möglich, dass eine APTCA-Assembly nach der Installation im GAC einen Sicherheitsfehler aufweist.However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GAC . Nachdem ein Sicherheitsrisiko entdeckt wurde, können Assemblyherausgeber ein Sicherheitsupdate erstellen, um das Problem in vorhandenen Installationen zu beheben und Installationen zu schützen, die nach der Entdeckung des Problems erfolgen.Once a security flaw is discovered, assembly publishers can produce a security update to fix the problem on existing installations, and to protect against installations that may occur after the problem is discovered. Eine Option für ein solches Update besteht darin, die Assembly zu deinstallieren, was jedoch zum Versagen anderer voll vertrauenswürdiger Clientanwendungen führen kann, die diese Assembly verwenden.One option for the update is to uninstall the assembly, although that may break other fully trusted client applications that use the assembly.

WPFWPFstellt einen Mechanismus bereit, mit dem eine APTCA-Assembly für teilweise Vertrauens XBAPsXBAPs würdig deaktiviert werden kann, ohne die APTCA-Assembly zu deinstallieren.provides a mechanism by which an APTCA assembly can be disabled for partially trusted XBAPsXBAPs without uninstalling the APTCA assembly.

Um eine APTCA-Assembly zu deaktivieren, müssen Sie einen speziellen Registrierungsschlüssel erstellen:To disable an APTCA assembly, you have to create a special registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\<AssemblyFullName>, FileVersion=<AssemblyFileVersion>

Es folgt ein Beispiel:The following shows an example:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\APTCA\aptcagac, Version=1.0.0.0, Culture=neutral, PublicKeyToken=215e3ac809a0fea7, FileVersion=1.0.0.0

Dieser Schlüssel erstellt einen Eintrag für die APTCA-Assembly.This key establishes an entry for the APTCA assembly. Sie müssen außerdem einen Wert in diesem Schlüssel erstellen, der die Assembly aktiviert oder deaktiviert.You also have to create a value in this key that enables or disables the assembly. Die Details des Werts sehen wie folgt aus:The following are the details of the value:

  • Wertname: APTCA_FLAG.Value Name: APTCA_FLAG.

  • Werttyp: REG_DWORD.Value Type: REG_DWORD.

  • Wertdaten: 1 zum Deaktivieren; 0 zum Aktivieren.Value Data: 1 to disable; 0 to enable.

Muss eine Assembly für teilweise vertrauenswürdige Clientanwendungen deaktiviert werden, können Sie ein Update schreiben, in dem der Registrierungsschlüssel und dessen Wert aktualisiert werden.If an assembly has to be disabled for partially trusted client applications, you can write an update that creates the registry key and value.

Hinweis

Core .NET Framework Assemblys sind nicht betroffen, da Sie auf diese Weise deaktiviert werden, da Sie für die Durchführung verwalteter Anwendungen erforderlich sind.Core .NET Framework assemblies are not affected by disabling them in this way because they are required for managed applications to run. Die Unterstützung zur Deaktivierung von APTCA-Assemblys zielt hauptsächlich auf Anwendungen von Drittanbietern ab.Support for disabling APTCA assemblies is primarily targeted to third-party applications.

Sandkastenverhalten für Loose XAML-DateienSandbox Behavior for Loose XAML Files

Lose XAMLXAML Dateien sind nur-Markup-XAML-Dateien, die von keinen Code-Behind-, Ereignishandler-oder anwendungsspezifischen Assemblys abhängen.Loose XAMLXAML files are markup-only XAML files that do not depend on any code-behind, event handler, or application-specific assembly. Wenn lose XAMLXAML Dateien direkt über den Browser navigiert werden, werden Sie auf Grundlage des Standard Berechtigungs Satzes für die Internet Zone in eine Sicherheits Sandbox geladen.When loose XAMLXAML files are navigated to directly from the browser, they are loaded in a security sandbox based on the default Internet zone permission set.

Das Sicherheits Verhalten unterscheidet sich jedoch, wenn XAMLXAML auf lose Dateien von NavigationWindow oder Frame in einer eigenständigen Anwendung aus navigiert wird.However, the security behavior is different when loose XAMLXAML files are navigated to from either a NavigationWindow or Frame in a standalone application.

In beiden Fällen erbt die XAMLXAML lose Datei, zu der navigiert wird, die Berechtigungen der zugehörigen Host Anwendung.In both cases, the loose XAMLXAML file that is navigated to inherits the permissions of its host application. Dieses Verhalten kann jedoch aus Sicherheitsgründen nicht erwünscht sein, insbesondere dann, wenn eine XAMLXAML lose Datei von einer nicht vertrauenswürdigen oder unbekannten Entität erstellt wurde.However, this behavior may be undesirable from a security perspective, particularly if a loose XAMLXAML file was produced by an entity that is either not trusted or unknown. Diese Art von Inhalt wird als externer Inhaltbezeichnet, und sowohl Frame als NavigationWindow auch können so konfiguriert werden, dass Sie bei der Navigation zu isoliert werden.This type of content is known as external content, and both Frame and NavigationWindow can be configured to isolate it when navigated to. Die Isolation wird erreicht, indem die SandboxExternalContent -Eigenschaft auf true festgelegt wird, wie in Frame den NavigationWindowfolgenden Beispielen für und gezeigt:Isolation is achieved by setting the SandboxExternalContent property to true, as shown in the following examples for Frame and NavigationWindow:

<Frame 
  Source="ExternalContentPage.xaml" 
  SandboxExternalContent="True">
</Frame>
<!-- Sandboxing external content using NavigationWindow-->
<NavigationWindow 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  Source="ExternalContentPage.xaml" 
  SandboxExternalContent="True">
</NavigationWindow>

Mit dieser Einstellung wird der externe Inhalt in einen Prozess geladen, der von dem Prozess getrennt ist, der die Anwendung hostet.With this setting, external content will be loaded into a process that is separate from the process that is hosting the application. Dieser Prozess ist auf den Standardberechtigungssatz für die Internetzone beschränkt, wodurch er effizient von der Hostanwendung und dem Clientcomputer isoliert ist.This process is restricted to the default Internet zone permission set, effectively isolating it from the hosting application and the client computer.

Hinweis

Obwohl die Navigation zu losen XAMLXAML Dateien von einer NavigationWindow oder Frame einer eigenständigen Anwendung basierend auf der WPF-Browser-Hostinginfrastruktur implementiert ist, die den PresentationHost-Prozess umfasst, ist die Sicherheitsstufe etwas kleiner als wenn der Inhalt direkt in Internet Explorer unter Windows VistaWindows Vista und Windows 7Windows 7 geladen wird (Dies wäre jedoch immer noch über PresentationHost der Fall).Even though navigation to loose XAMLXAML files from either a NavigationWindow or Frame in a standalone application is implemented based on the WPF browser hosting infrastructure, involving the PresentationHost process, the security level is slightly less than when the content is loaded directly in Internet Explorer on Windows VistaWindows Vista and Windows 7Windows 7 (which would still be through PresentationHost). Dies liegt daran, dass eine eigenständige WPF-Anwendung, die einen Webbrowser verwendet, die zusätzliche „Geschützter Modus“-Sicherheitsfunktion von Internet Explorer nicht bereitstellt.This is because a standalone WPF application using a Web browser does not provide the additional Protected Mode security feature of Internet Explorer.

Ressourcen zum Entwickeln von WPF-Anwendungen, die die Sicherheit erhöhenResources for Developing WPF Applications that Promote Security

Im folgenden finden Sie einige zusätzliche Ressourcen zur unter WPFWPF Stützung der Entwicklung von Anwendungen, die die Sicherheit erhöhen:The following are some additional resources to help develop WPFWPF applications that promote security:

BereichArea RessourceResource
Verwalteter CodeManaged code Sicherheits Leit Faden zu Mustern und Vorgehensweisen für AnwendungenPatterns and Practices Security Guidance for Applications
CASCAS CodezugriffssicherheitCode Access Security
ClickOnceClickOnce ClickOnce-Sicherheit und BereitstellungClickOnce Security and Deployment
WPFWPF WPF-Sicherheit mit teilweiser VertrauenswürdigkeitWPF Partial Trust Security

Siehe auchSee also