Sicherheit (WPF)Security (WPF)

Bei der Entwicklung von Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) eigenständige und im Browser gehostete Anwendungen, müssen Sie berücksichtigen, dass das Sicherheitsmodell.When developing Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) standalone and browser-hosted applications, you must consider the security model. WPFWPFeigenständige Anwendungen mit uneingeschränkten Berechtigungen ausgeführt ( CASCAS FullTrust Berechtigungssatz), ob mithilfe von Windows Installer (MSI-Datei) mithilfe von XCopy, bereitgestellt oder ClickOnceClickOnce. standalone applications execute with unrestricted permissions ( CASCASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnceClickOnce. 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. Eine voll vertrauenswürdige hostanwendung kann jedoch eine teilweise vertrauenswürdigen erstellen AppDomain mit dem .NET Framework-Add-in-Modell.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 gehosteten Windows Internet ExplorerWindows Internet Explorer oder Firefox, und kann entweder XAML-Browseranwendungen (XAML browser applications; XBAPs)XAML browser applications (XBAPs) oder lose Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Dokumente Weitere Informationen finden Sie unter WPF-XAML Browser Applications Overview. browser-hosted applications are hosted by Windows Internet ExplorerWindows 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.

WPFWPFFühren Sie im Browser gehostete Anwendungen in einer teilweise vertrauenswürdigen Sicherheits-Sandbox wird standardmäßig die beschränkt der Standardwert ist CASCAS Internet zone Berechtigungssatz. browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASCASInternet zone permission set. Dies effektiv isoliert WPFWPF im Browser gehostete Anwendungen auf dem Clientcomputer auf die gleiche Weise, dass erwartet typische Webanwendungen isoliert werden müssen.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.

Dieses Thema beschreibt das Sicherheitsmodell für Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) eigenständige und im Browser gehostete Anwendungen.This topic discusses the security model for Windows Presentation Foundation (WPF)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, WPFWPF werden zwei Threadtypen Navigation: 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 der Navigation in der Anwendung (normalerweise XAML) und Browsernavigation (in der Regel HTML) wird in der folgenden Abbildung gezeigt:The relationship between application navigation (typically XAML) and browser navigation (typically HTML) is shown in the following illustration:

NavigationsdiagrammNavigation diagram

Der Typ des Inhalts, die als sicher betrachtet eine XBAPXBAP zum Navigieren in erster Linie richtet sich nach, ob die Navigation in der Anwendung 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

Navigation in der Anwendung wird als sicher betrachtet, wenn er mit einem Pack identifiziert werden kann URIURI, die unterstützt vier Typen von Inhalten: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 zu einem Projekt mit einem Build hinzugefügt werden Ressource.Files that are added to a project with a build type of Resource. pack://application:,,,/MyResourceFile.xaml
InhaltContent Dateien, die zu einem Projekt mit einem Build hinzugefügt werden Content.Files that are added to a project with a build type of Content. pack://application:,,,/MyContentFile.xaml
UrsprungswebsiteSite of origin Dateien, die zu einem Projekt mit einem Build hinzugefügt werden keine.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-

Verwendung von XAML-Dateien, die zu einem Projekt mit einem Build hinzugefügt werden Seite.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 Anwendungsdatendateien und Pack URIsURIs, finden Sie unter Anwendungsressource WPF-Inhalt 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 wird, indem Sie auf eine Hyperlink Element.The user navigates by clicking a Hyperlink element.

  • Programmgesteuerte NavigationProgrammatic Navigation. Die Anwendung navigiert, ohne den Benutzer einzubinden, z. B. durch Festlegen der NavigationWindow.Source 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 wird, indem Sie auf eine Hyperlink Element, das innerhalb des Haupt- NavigationWindow, nicht in einer geschachtelten Frame.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, Datei, oder Mailto.The protocol being used is either http, https, file, or mailto.

Wenn ein XBAPXBAP versucht, auf Inhalte auf eine Weise zu navigieren, die nicht mit den folgenden Bedingungen entspricht einer SecurityException ausgelöst wird.If 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. Webbrowser-Software enthält jede Anwendung oder Komponente, verwendet der WinINet oder UrlMon APIs, 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 ExplorerInternet Explorerbietet einen Mechanismus, mit dem können Sie konfigurieren, die Funktionalität, die von oder aus ausgeführt werden darf Internet ExplorerInternet Explorer, u. a. folgende: provides a mechanism by which you can configure the functionality that is allowed to be executed by or from Internet ExplorerInternet Explorer, including the following:

  • Komponenten, die auf .NET Framework.NET Framework aufsetzen.NET Framework.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 kann auf Basis der pro-Zone konfiguriert ist die Internet, Intranet, vertrauenswürdige Sites, und Eingeschränkte Sites Zonen.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. Open in der 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. Auf der Sicherheit Registerkarte, wählen Sie die Zone so konfigurieren Sie die Sicherheitseinstellungen für.On the Security tab, select the zone to configure the security settings for.

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

    Die Sicherheitseinstellungen Dialogfeld 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.

    Dialogfeld „Sicherheitseinstellungen“Security Settings dialog box

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 Tools , und klicken Sie dann auf Internetoptionen.Click Tools and then click Internet Options.

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

  • Loose XAML.Loose XAML. Steuert, ob Internet ExplorerInternet Explorer können zu navigieren und lose XAMLXAML Dateien.Controls whether Internet ExplorerInternet 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 ExplorerInternet Explorer können zu navigieren, und führen Sie XBAPsXBAPs.Controls whether Internet ExplorerInternet Explorer can navigate to and run XBAPsXBAPs. (Optionen „Aktivieren“, „Deaktivieren“ und „Bestätigen“.)(Enable, Disable, and Prompt options).

Wird standardmäßig diese Einstellungen sind alle aktiviert für die Internet, lokales Intranet, und vertrauenswürdige Sites Zonen und deaktiviert für den eingeschränkte Sites Zone.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

Die WPF WebBrowser Steuerelement zum Hosten von Webinhalten verwendet werden kann.The WPF WebBrowser control can be used to host Web content. Die WPF WebBrowser Steuerelement umschließt das zugrunde liegende WebBrowser ActiveX-Steuerelement.The WPF WebBrowser control wraps the underlying WebBrowser ActiveX control. WPF bietet einige Unterstützung zum Sichern Ihrer Anwendung bei der Verwendung von WPF WebBrowser zu hostende Steuerelement als nicht vertrauenswürdig eingestuft Webinhalte.WPF provides some support for securing your application when you use the WPF WebBrowser control to host untrusted Web content. Allerdings müssen einige Sicherheitsfunktionen angewendet werden, direkt von den Anwendungen, die mithilfe der WebBrowser Steuerelement.However, some security features must be applied directly by the applications using the WebBrowser control. Weitere Informationen über das WebBrowser ActiveX-Steuerelement finden Sie unter WebBrowser-Steuerelement Overviews and Tutorials.For more information about the WebBrowser ActiveX control, see WebBrowser Control Overviews and Tutorials.

Hinweis

Dieser Abschnitt gilt auch für die Frame steuern, da er verwendet die WebBrowser zu HTML-Inhalt navigieren.This section also applies to the Frame control since it uses the WebBrowser to navigate to HTML content.

Wenn der WPF WebBrowser Steuerelement zum Hosten von nicht vertrauenswürdigen Webinhalte verwendet wird, die Anwendung sollte eine teilweise vertrauenswürdigen verwenden AppDomain können den Anwendungscode von potenziell bösartige HTML-Skript-Code 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 gilt insbesondere, wenn Ihre Anwendung mit dem gehosteten Skript mit interagiert der InvokeScript Methode und die ObjectForScripting Eigenschaft.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 der WPF verwendet WebBrowser Steuerelement, eine weitere Möglichkeit zum Erhöhen der Sicherheit und Angriffe zu mindern Steuerelemente für Internet Explorer-Funktion zu aktivieren.If your application uses the WPF WebBrowser control, another way to increase security and mitigate attacks is to enable Internet Explorer feature controls. Feature-Steuerelemente sind Ergänzungen an Internet Explorer, mit denen Administratoren und Entwickler Features von Internet Explorer und Anwendungen, die im WebBrowser ActiveX-Steuerelement hosten konfigurieren können die WPF WebBrowser steuern umschließt.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. Feature-Steuerelemente können konfiguriert werden, mithilfe der CoInternetSetFeatureEnabled Funktion oder durch Ändern der Werte in der Registrierung.Feature controls can be configured by using the CoInternetSetFeatureEnabled function or by changing values in the registry. Weitere Informationen zum Feature Steuerelemente finden Sie unter Introduction to Feature Controls und Feature Internetsteuerelemente.For more information about feature controls, see Introduction to Feature Controls and Internet Feature Controls.

Wenn Sie eine eigenständige WPF-Anwendung entwickeln, die der WPF verwendet WebBrowser WPF-Steuerelement, kann automatisch die folgenden Feature-Steuerelemente 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.

Feature-Steuerelemente werden durch den Prozess, instanziieren den WebBrowser ActiveX-Objekt angewendet.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 unter die FAQ zur Sicherheit des MSHTML-Host: Teil I, II und die FAQ zur Sicherheit des MSHTML-Host: Teil II 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 das Ausführen von einer teilweise vertrauenswürdigen XAML-Browseranwendung (XBAP)XAML browser application (XBAP) enthält eine WPF WebBrowser steuern Windows Internet ExplorerWindows Internet Explorer, WPF hostet das WebBrowser ActiveX-Steuerelement in den Adressraum des Internet Explorer-Prozess.If you run a partial-trust XAML-Browseranwendung (XBAP)XAML browser application (XBAP) that includes a WPF WebBrowser control in Windows Internet ExplorerWindows Internet Explorer, WPF hosts the WebBrowser ActiveX control in the address space of the Internet Explorer process. Seit der WebBrowser ActiveX-Steuerelement, in gehostet wird der Internet ExplorerInternet Explorer Prozess, alle Steuerelemente Feature für Internet Explorer auch für das WebBrowser ActiveX-Steuerelement aktiviert sind.Since the WebBrowser ActiveX control is hosted in the Internet ExplorerInternet 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 Sicherheitsmaßnahme ist, da Internet Explorer und daher im WebBrowser ActiveX-Steuerelement ausgeführt wird im geschützten Modus standardmäßig auf Windows VistaWindows Vista und Windows 7Windows 7.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 verstehen und Arbeiten im geschützten Modus 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 eine WPF umfasst WebBrowser -Steuerelement in Firefox, klicken Sie in der Internetzone eine SecurityException 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 installiert sind, in der Globaler Assemblycache (GAC)global assembly cache (GAC), werden sie voll vertrauenswürdig, da der Benutzer explizite Zugriffsberechtigung für die Installation bereitgestellt werden muss.When managed assemblies are installed into the Globaler Assemblycache (GAC)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 wird teilweise vertrauenswürdige Anwendungen zu verwenden, müssen sie mit markiert werden die AllowPartiallyTrustedCallersAttribute (APTCA).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.

Allerdings ist es möglich, dass eine APTCA-Assembly mit einem Sicherheitsmangels ausgeführt wird, nach der Installation in der GACGAC.However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GACGAC. 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.

WPFWPFbietet einen Mechanismus, mit dem APTCA-Assembly deaktiviert werden, kann für teilweise vertrauenswürdige XBAPsXBAPs 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.

  • Typ: REG_DWORD.Value Type: REG_DWORD.

  • Wertdaten: 1 zu deaktivieren; 0 zu 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.NET Framework Assemblys sind nicht betroffen, indem sie auf diese Weise zu deaktivieren, da sie für die Ausführung von verwalteten Anwendungen erforderlich sind.Core .NET Framework.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 Markup-XAML-Dateien, die nicht auf Code-Behind, Ereignishandler oder anwendungsspezifische Assembly 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 vom Browser navigiert, die sie in einem Sicherheitssandkasten basierend auf den Standardberechtigungssatz für die Zone erneut geladen werden.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 Sicherheitsverhalten ist jedoch anders aus, wenn Sie loose XAMLXAML Dateien entweder navigiert ein NavigationWindow oder Frame in eine eigenständige Anwendung.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, die losen XAMLXAML Datei, zu der navigiert wird, erbt die Berechtigungen von der hostanwendung.In both cases, the loose XAMLXAML file that is navigated to inherits the permissions of its host application. Allerdings möglicherweise dieses Verhalten unerwünscht im Hinblick auf Sicherheit, insbesondere, wenn eine lose XAMLXAML Datei wurde erstellt, indem Sie eine Entität, die nicht vertrauenswürdig oder unbekannt ist.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. Dieser Typ des Inhalts wird als bezeichnet externe Inhalte, und die beiden Frame und NavigationWindow kann konfiguriert werden, um ihn bei der Navigation zu isolieren.This type of content is known as external content, and both Frame and NavigationWindow can be configured to isolate it when navigated to. Isolation wird erreicht, indem die SandboxExternalContent Eigenschaft auf "true", wie in den folgenden Beispielen gezeigt, Frame und NavigationWindow: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 Navigation zu lose XAMLXAML Dateien entweder eine NavigationWindow oder Frame in eine eigenständige Anwendung implementiert wird basierend auf dem Host fungierende Infrastruktur, die im Zusammenhang mit der Prozess PresentationHost WPF-Browser wird die Sicherheitsstufe wird etwas weniger als wenn der Inhalt auf direkt im Internet Explorer geladen wird Windows VistaWindows Vista und Windows 7Windows 7 (die wäre immer noch über PresentationHost).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 sind einige zusätzlichen Ressourcen zum Entwickeln von WPFWPF Anwendungen, die Sicherheit höher stufen:The following are some additional resources to help develop WPFWPF applications that promote security:

BereichArea RessourceResource
Verwalteter CodeManaged code Patterns and Practices-Sicherheitsleitfaden 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

WPF-Sicherheit mit teilweiser VertrauenswürdigkeitWPF Partial Trust Security
WPF-Sicherheitsstrategie – PlattformsicherheitWPF Security Strategy - Platform Security
WPF-Sicherheitsstrategie – SicherheitsentwicklungWPF Security Strategy - Security Engineering
Patterns and Practices-Sicherheitsleitfaden für AnwendungenPatterns and Practices Security Guidance for Applications
CodezugriffssicherheitCode Access Security
ClickOnce-Sicherheit und BereitstellungClickOnce Security and Deployment
Übersicht über XAML (WPF)XAML Overview (WPF)