Seguridad (WPF)Security (WPF)

Al desarrollar aplicaciones hospedadas en explorador y Windows Presentation Foundation (WPF) independiente, debe tener en cuenta el modelo de seguridad.When developing Windows Presentation Foundation (WPF) standalone and browser-hosted applications, you must consider the security model. WPFWPF las aplicaciones independientes que se ejecutan con permisos restringidos ( CASCAS FullTrust conjunto de permisos), si se implementa mediante Windows Installer (.msi), como con XCopy o ClickOnceClickOnce.standalone applications execute with unrestricted permissions ( CASCASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnceClickOnce. No se admite la implementación de aplicaciones de WPF independientes y de confianza parcial con ClickOnce.Deploying partial-trust, standalone WPF applications with ClickOnce is unsupported. Sin embargo, una aplicación host de plena confianza puede crear una confianza parcial AppDomain mediante el modelo de complementos de .NET Framework.However, a full-trust host application can create a partial-trust AppDomain using the .NET Framework Add-in model. Para obtener más información, consulte información general sobre complementos de WPF.For more information, see WPF Add-Ins Overview.

WPFWPF aplicaciones hospedadas en explorador se hospedan en Windows Internet ExplorerWindows Internet Explorer o Firefox, y puede ser Aplicaciones del explorador XAML (XBAPs)XAML browser applications (XBAPs) o sueltos Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) documentos para obtener más información, consulte Introducción a las aplicaciones de explorador de XAML de WPF.browser-hosted applications are hosted by Windows Internet ExplorerWindows Internet Explorer or Firefox, and can be either Aplicaciones del explorador XAML (XBAPs)XAML browser applications (XBAPs) or loose Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) documents For more information, see WPF XAML Browser Applications Overview.

WPFWPF aplicaciones hospedadas en explorador se ejecutan dentro de un recinto de seguridad de confianza parcial, de forma predeterminada, que está limitado en el valor predeterminado CASCAS Internet conjunto de permisos de zona.browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASCASInternet zone permission set. Esto aísla de forma eficaz WPFWPF aplicaciones hospedadas en explorador desde el equipo cliente de la misma manera que se esperaría para aislar las aplicaciones Web típicas.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. XBAP puede elevar los privilegios hasta Plena confianza en función de la zona de seguridad de la dirección URL de implementación y la configuración de seguridad del cliente.An XBAP can elevate privileges, up to Full Trust, depending on the security zone of the deployment URL and the client's security configuration. Para obtener más información, vea Seguridad de confianza parcial de WPF.For more information, see WPF Partial Trust Security.

En este tema se describe el modelo de seguridad para Windows Presentation Foundation (WPF) independiente y las aplicaciones hospedadas en explorador.This topic discusses the security model for Windows Presentation Foundation (WPF) standalone and browser-hosted applications.

Este tema contiene las siguientes secciones:This topic contains the following sections:

Navegación seguraSafe Navigation

Para XBAPsXBAPs, WPFWPF distingue entre dos tipos de navegación: aplicación y el explorador.For XBAPsXBAPs, WPFWPF distinguishes two types of navigation: application and browser.

Navegación de aplicación es la navegación entre los elementos de contenido dentro de una aplicación hospedada en un explorador.Application navigation is navigation between items of content within an application that is hosted by a browser. Navegación de explorador es la navegación que cambia el contenido y la dirección URL del explorador.Browser navigation is navigation that changes the content and location URL of a browser itself. La relación entre la navegación de aplicación (normalmente XAML) y la navegación del explorador (normalmente HTML) se muestra en la ilustración siguiente:The relationship between application navigation (typically XAML) and browser navigation (typically HTML) is shown in the following illustration:

Relación entre la navegación de aplicación y de navegación del explorador.

El tipo de contenido que se considera seguro para un XBAPXBAP navegar a se determina principalmente por si se utiliza la navegación de aplicación o de navegación del explorador.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.

Seguridad de navegación de aplicaciónApplication Navigation Security

Navegación por la aplicación se considera segura si se puede identificarse con un módulo Identificador URIURI, que admite cuatro tipos de contenido:Application navigation is considered safe if it can be identified with a pack Identificador URIURI, which supports four types of content:

Tipo de contenidoContent Type DescripciónDescription Ejemplo de URIURI Example
RecursoResource Los archivos que se agregan a un proyecto con un tipo de compilación de recursos.Files that are added to a project with a build type of Resource. pack://application:,,,/MyResourceFile.xaml
ContenidoContent Los archivos que se agregan a un proyecto con un tipo de compilación de contenido.Files that are added to a project with a build type of Content. pack://application:,,,/MyContentFile.xaml
Sitio de origenSite of origin Los archivos que se agregan a un proyecto con un tipo de compilación de ninguno.Files that are added to a project with a build type of None. pack://siteoforigin:,,,/MySiteOfOriginFile.xaml
Código de aplicaciónApplication code Recursos XAML que tienen un código compilado subyacente.XAML resources that have a compiled code-behind.

-o bien--or-

Archivos XAML que se agregan a un proyecto con un tipo de compilación de página.XAML files that are added to a project with a build type of Page.
pack://application:,,,/MyResourceFile .xamlpack://application:,,,/MyResourceFile .xaml

Nota

Para obtener más información acerca de los archivos de datos de aplicación y el módulo URIURIs, consulte WPF Application Resource, contenido y los archivos de datos.For more information about application data files and pack URIURIs, see WPF Application Resource, Content, and Data Files.

El usuario puede navegar por los archivos de estos tipos de contenido, aunque también se pueden navegar mediante programación:Files of these content types can be navigated to by either the user or programmatically:

  • Navegación de usuario.User Navigation. El usuario navega haciendo clic en un Hyperlink elemento.The user navigates by clicking a Hyperlink element.

  • Navegación mediante programación.Programmatic Navigation. La aplicación navega sin involucrar al usuario, por ejemplo, estableciendo el NavigationWindow.Source propiedad.The application navigates without involving the user, for example, by setting the NavigationWindow.Source property.

Seguridad de navegación de exploradorBrowser Navigation Security

La navegación de explorador se considera segura solo en las siguientes condiciones:Browser navigation is considered safe only under the following conditions:

  • Navegación de usuario.User Navigation. El usuario navega haciendo clic en un Hyperlink elemento que está dentro de los principales NavigationWindow, no en un anidada Frame.The user navigates by clicking a Hyperlink element that is within the main NavigationWindow, not in a nested Frame.

  • Zona.Zone. El contenido al que se navega se encuentra en Internet o en la intranet local.The content being navigated to is located on the Internet or the local intranet.

  • Protocolo.Protocol. El protocolo utilizado es http, https, archivo, o mailto.The protocol being used is either http, https, file, or mailto.

Si un XBAPXBAP intenta navegar a contenido de un modo que no cumpla estas condiciones, un SecurityException se produce.If an XBAPXBAP attempts to navigate to content in a manner that does not comply with these conditions, a SecurityException is thrown.

Configuración de seguridad de software de exploración webWeb Browsing Software Security Settings

La configuración de seguridad en el equipo determina el acceso que se concede a cualquier software de navegación web.The security settings on your computer determine the access that any Web browsing software is granted. Software de exploración Web incluye cualquier aplicación o componente que utiliza el WinINet o UrlMon API, como Internet Explorer y 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 Explorer Proporciona un mecanismo por el que puede configurar la funcionalidad que se puede ejecutar en o desde Internet ExplorerInternet Explorer, incluido lo siguiente: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:

  • Componentes que dependen de framework .NET.NET Framework-reliant components

  • Controles y complementos de ActiveXActiveX controls and plug-ins

  • DescargasDownloads

  • ScriptingScripting

  • Autenticación de usuarioUser Authentication

La colección de funciones que se pueden proteger de este modo se configura en una base por zona para el Internet, Intranet, sitios de confianza, y Sitios restringidos zonas.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. En los siguientes pasos se describe cómo establecer la configuración de seguridad:The following steps describe how to configure your security settings:

  1. Abra Panel de Control.Open Control Panel.

  2. Haga clic en red e Internet y, a continuación, haga clic en opciones de Internet.Click Network and Internet and then click Internet Options.

    Aparecerá el cuadro de diálogo Opciones de Internet.The Internet Options dialog box appears.

  3. En el seguridad pestaña, seleccione la zona para configurar la configuración de seguridad.On the Security tab, select the zone to configure the security settings for.

  4. Haga clic en el nivel personalizado botón.Click the Custom Level button.

    El configuración de seguridad aparece el cuadro de diálogo y se puede configurar la configuración de seguridad para la zona seleccionada.The Security Settings dialog box appears and you can configure the security settings for the selected zone.

    Captura de pantalla que muestra el cuadro de diálogo Configuración de seguridad.

Nota

También puede abrir el cuadro de diálogo Opciones de Internet desde Internet Explorer.You can also get to the Internet Options dialog box from Internet Explorer. Haga clic en herramientas y, a continuación, haga clic en opciones de Internet.Click Tools and then click Internet Options.

A partir de Windows Internet Explorer 7Windows Internet Explorer 7, la siguiente configuración de seguridad específicamente para .NET Framework se incluyen:Starting with Windows Internet Explorer 7Windows Internet Explorer 7, the following security settings specifically for .NET Framework are included:

  • XAML dinámico.Loose XAML. Controles si Internet ExplorerInternet Explorer puede navegar a y se pierden XAMLXAML archivos.Controls whether Internet ExplorerInternet Explorer can navigate to and loose XAMLXAML files. (Opciones Habilitar, Deshabilitar y Preguntar).(Enable, Disable, and Prompt options).

  • Aplicaciones de explorador XAML.XAML browser applications. Controles si Internet ExplorerInternet Explorer puede navegar a y ejecute XBAPsXBAPs.Controls whether Internet ExplorerInternet Explorer can navigate to and run XBAPsXBAPs. (Opciones Habilitar, Deshabilitar y Preguntar).(Enable, Disable, and Prompt options).

De forma predeterminada, esta configuración está habilitada para el Internet, intranet Local, y sitios de confianza zonas y deshabilitado para el sitios restringidos zona.By default, these settings are all enabled for the Internet, Local intranet, and Trusted sites zones, and disabled for the Restricted sites zone.

Además de la configuración de seguridad disponible mediante Opciones de Internet, los valores del Registro siguientes están disponibles para bloquear selectivamente varias características de WPF de seguridad.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. Los valores se definen con la siguiente clave:The values are defined under the following key:

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

En la tabla siguiente se muestran los valores que se pueden establecer.The following table lists the values that can be set.

Nombre del valorValue Name Tipo de valorValue Type Datos del valorValue Data
XBAPDisallowXBAPDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
LooseXamlDisallowLooseXamlDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
WebBrowserDisallowWebBrowserDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
MediaAudioDisallowMediaAudioDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
MediaImageDisallowMediaImageDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
MediaVideoDisallowMediaVideoDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.
ScriptInteropDisallowScriptInteropDisallow REG_DWORDREG_DWORD 1 para no permitir; 0 para permitir.1 to disallow; 0 to allow.

Control WebBrowser y controles de característicasWebBrowser Control and Feature Controls

WPF WebBrowser control puede usarse para hospedar contenido Web.The WPF WebBrowser control can be used to host Web content. WPF WebBrowser control encapsula el control WebBrowser ActiveX subyacente.The WPF WebBrowser control wraps the underlying WebBrowser ActiveX control. WPF proporciona compatibilidad para proteger la aplicación cuando se usa WPF WebBrowser control para hospedar contenido Web no es de confianza.WPF provides some support for securing your application when you use the WPF WebBrowser control to host untrusted Web content. Sin embargo, deben aplicar algunas características de seguridad directamente en las aplicaciones que usan el WebBrowser control.However, some security features must be applied directly by the applications using the WebBrowser control. Para obtener más información sobre el control WebBrowser ActiveX, consulte información general de Control WebBrowser y tutoriales.For more information about the WebBrowser ActiveX control, see WebBrowser Control Overviews and Tutorials.

Nota

En esta sección también se aplica a la Frame controlar, ya que utiliza el WebBrowser para navegar a contenido HTML.This section also applies to the Frame control since it uses the WebBrowser to navigate to HTML content.

Si el WPF WebBrowser control se usa para hospedar contenido Web que no se confía, la aplicación debe usar una confianza parcial AppDomain para ayudar a aislar el código de aplicación desde el código de script HTML potencialmente malintencionado.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. Esto es especialmente cierto si la aplicación está interactuando con el script hospedado mediante el uso de la InvokeScript método y el ObjectForScripting propiedad.This is especially true if your application is interacting with the hosted script by using the InvokeScript method and the ObjectForScripting property. Para obtener más información, consulte información general sobre complementos de WPF.For more information, see WPF Add-Ins Overview.

Si la aplicación usa WPF WebBrowser control, otra manera de aumentar la seguridad y mitigar los ataques es habilitar controles de característica de Internet Explorer.If your application uses the WPF WebBrowser control, another way to increase security and mitigate attacks is to enable Internet Explorer feature controls. Controles de característica son adiciones a Internet Explorer que permiten a los administradores y programadores configurar las características de Internet Explorer y las aplicaciones que hospedan el control WebBrowser ActiveX, que WPF WebBrowser controlar el ajusta.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. Controles de característica se pueden configurar mediante el CoInternetSetFeatureEnabled función o cambiando los valores del registro.Feature controls can be configured by using the CoInternetSetFeatureEnabled function or by changing values in the registry. Para obtener más información acerca de los controles de característica, consulte Introducción a los controles de característica y controles de característica de Internet.For more information about feature controls, see Introduction to Feature Controls and Internet Feature Controls.

Si está desarrollando una aplicación de WPF independiente que usa WPF WebBrowser (control), WPF habilita automáticamente los siguientes controles de característica para la aplicación.If you are developing a standalone WPF application that uses the WPF WebBrowser control, WPF automatically enables the following feature controls for your application.

Control de característicaFeature 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

Puesto que estos controles de característica están habilitados incondicionalmente, podrían afectar a una aplicación de plena confianza.Since these feature controls are enabled unconditionally, a full-trust application might be impaired by them. En este caso, si no hay ningún riesgo de seguridad para la aplicación específica y el contenido que se hospeda, se puede deshabilitar el control de característica correspondiente.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.

El proceso de crear instancias del objeto WebBrowser ActiveX aplica los controles de característica.Feature controls are applied by the process instantiating the WebBrowser ActiveX object. Por lo tanto, si está creando una aplicación independiente que puede navegar a contenido que no es de confianza, debe considerar seriamente la posibilidad de habilitar controles de característica adicionales.Therefore, if you are creating a stand-alone application that can navigate to untrusted content, you should seriously consider enabling additional feature controls.

Nota

Esta recomendación se basa en las recomendaciones generales para la seguridad de host MSHTML y SHDOCVW.This recommendation is based on general recommendations for MSHTML and SHDOCVW host security. Para obtener más información, consulte la p+f acerca de seguridad de Host MSHTML: Parte I de II y la preguntas más frecuentes sobre la seguridad de Host MSHTML: Parte II de II.For more information, see The MSHTML Host Security FAQ: Part I of II and The MSHTML Host Security FAQ: Part II of II.

Para el archivo ejecutable, considere la posibilidad de habilitar los siguientes controles de característica. Para ello, establezca el valor del Registro en 1.For your executable, consider enabling the following feature controls by setting the registry value to 1.

Control de característicaFeature 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

Para el archivo ejecutable, considere la posibilidad de deshabilitar el siguiente control de característica. Para ello, establezca el valor del Registro en 0.For your executable, consider disabling the following feature control by setting the registry value to 0.

Control de característicaFeature Control
FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPTFEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT

Si ejecuta una confianza parcial Aplicación del explorador XAML (XBAP)XAML browser application (XBAP) que incluye un WPF WebBrowser en controlar Windows Internet ExplorerWindows Internet Explorer, WPF hospeda el control WebBrowser ActiveX en el espacio de direcciones del proceso de Internet Explorer.If you run a partial-trust Aplicación del explorador XAML (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. Puesto que el control WebBrowser ActiveX se hospeda en el Internet ExplorerInternet Explorer procesos, todos los controles de característica para Internet Explorer también están habilitados para el control WebBrowser ActiveX.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.

Los objetos XBAP que se ejecutan en Internet Explorer también obtienen un nivel adicional de seguridad en comparación con las aplicaciones independientes normales.XBAPs running in Internet Explorer also get an additional level of security compared to normal standalone applications. Esta seguridad adicional es porque Internet Explorer y, por lo tanto, el control WebBrowser ActiveX, se ejecuta en protegido de forma predeterminada en el modo Windows VistaWindows Vista y 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. Para obtener más información sobre el modo protegido, consulte entender y trabajar en modo protegido, Internet Explorer.For more information about protected mode, see Understanding and Working in Protected Mode Internet Explorer.

Nota

Si intenta ejecutar un XBAP que incluye un WPF WebBrowser control en Firefox, mientras que en la zona de Internet, un SecurityException se iniciará.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. Esto se debe a la directiva de seguridad de WPF.This is due to WPF security policy.

Deshabilitar ensamblados APTCA para aplicaciones cliente de confianza parcialDisabling APTCA Assemblies for Partially Trusted Client Applications

Cuando se instalan ensamblados administrados en el caché global de ensamblados (GAC)global assembly cache (GAC), que se conviertan en plena confianza porque el usuario debe proporcionar permiso explícito para instalarlos.When managed assemblies are installed into the caché global de ensamblados (GAC)global assembly cache (GAC), they become fully trusted because the user must provide explicit permission to install them. Dado que son de plena confianza, solo las aplicaciones cliente administradas de plena confianza pueden usarlos.Because they are fully trusted, only fully trusted managed client applications can use them. Para permitir que las aplicaciones de confianza parcial usarlas, debe marcarse con el AllowPartiallyTrustedCallersAttribute (APTCA).To allow partially trusted applications to use them, they must be marked with the AllowPartiallyTrustedCallersAttribute (APTCA). Solo los ensamblados probados como seguros para la ejecución en confianza parcial se deben marcar con este atributo.Only assemblies that have been tested to be safe for execution in partial trust should be marked with this attribute.

Sin embargo, es posible que un ensamblado APTCA muestre un error de seguridad después de instalarlo en el GACGAC.However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GACGAC. Cuando se detecta un error de seguridad, los publicadores de ensamblados pueden producir una actualización de seguridad para corregir el problema en las instalaciones existentes y proteger las instalaciones que se produzcan después de detectar el problema.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. Una opción para la actualización es desinstalar el ensamblado, aunque eso podría causar que otras aplicaciones cliente de plena confianza que usan el ensamblado dejen de funcionar correctamente.One option for the update is to uninstall the assembly, although that may break other fully trusted client applications that use the assembly.

WPFWPF Proporciona un mecanismo por el que se puede deshabilitar un ensamblado APTCA para confianza parcial XBAPsXBAPs sin desinstalar el ensamblado APTCA.provides a mechanism by which an APTCA assembly can be disabled for partially trusted XBAPsXBAPs without uninstalling the APTCA assembly.

Para deshabilitar un ensamblado APTCA, tiene que crear una clave del Registro especial:To disable an APTCA assembly, you have to create a special registry key:

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

Se muestra un ejemplo a continuación: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

Esta clave establece una entrada para el ensamblado APTCA.This key establishes an entry for the APTCA assembly. También debe crear un valor en esta clave que habilite o deshabilite el ensamblado.You also have to create a value in this key that enables or disables the assembly. Los siguientes son los detalles del valor:The following are the details of the value:

  • Nombre del valor: APTCA_FLAG.Value Name: APTCA_FLAG.

  • Tipo de valor: REG_DWORD.Value Type: REG_DWORD.

  • Datos del valor: 1 para deshabilitar; 0 a habilitar.Value Data: 1 to disable; 0 to enable.

Si un ensamblado se debe deshabilitar para las aplicaciones cliente de confianza parcial, puede escribir una actualización que cree la clave y el valor del Registro.If an assembly has to be disabled for partially trusted client applications, you can write an update that creates the registry key and value.

Nota

No afecta a los ensamblados de .NET Framework Core mediante la deshabilitación de esta manera porque son necesarios para ejecutar aplicaciones administradas.Core .NET Framework assemblies are not affected by disabling them in this way because they are required for managed applications to run. La compatibilidad para deshabilitar ensamblados APTCA está destinada principalmente a aplicaciones de terceros.Support for disabling APTCA assemblies is primarily targeted to third-party applications.

Comportamiento de espacio aislado para archivos XAML dinámicosSandbox Behavior for Loose XAML Files

Flexible XAMLXAML archivos son archivos XAML solo de marcado que no dependen de ningún código subyacente, controlador de eventos o ensamblado específico de la aplicación.Loose XAMLXAML files are markup-only XAML files that do not depend on any code-behind, event handler, or application-specific assembly. Cuando se pierden XAMLXAML navegar a archivos directamente desde el explorador, se cargan en un recinto de seguridad basado en el conjunto de permisos de zona de Internet predeterminado.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.

Sin embargo, el comportamiento de seguridad es diferente cuando XAMLXAML navegar a archivos desde un NavigationWindow o Frame en una aplicación independiente.However, the security behavior is different when loose XAMLXAML files are navigated to from either a NavigationWindow or Frame in a standalone application.

En ambos casos, el flexible XAMLXAML archivo que se navega hereda los permisos de su aplicación host.In both cases, the loose XAMLXAML file that is navigated to inherits the permissions of its host application. Sin embargo, este comportamiento puede no ser deseable desde una perspectiva de seguridad, en especial si XAMLXAML archivo se generó mediante una entidad que sea de no confianza o desconocido.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. Este tipo de contenido se conoce como contenido externoy ambos Frame y NavigationWindow se pueden configurar para aislarlo cuando se navega.This type of content is known as external content, and both Frame and NavigationWindow can be configured to isolate it when navigated to. Aislamiento se consigue estableciendo la SandboxExternalContent la propiedad en true, tal como se muestra en los ejemplos siguientes para Frame y 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>

Con esta configuración, el contenido externo se carga en un proceso independiente del proceso que hospeda la aplicación.With this setting, external content will be loaded into a process that is separate from the process that is hosting the application. Este proceso está restringido al conjunto de permisos predeterminado de la zona de Internet y lo aísla de forma eficaz desde la aplicación host y el equipo cliente.This process is restricted to the default Internet zone permission set, effectively isolating it from the hosting application and the client computer.

Nota

Aunque navegación perder XAMLXAML archivos desde un NavigationWindow o Frame en una independiente se implementa la aplicación basándose en el explorador WPF hospeda la infraestructura, que implica el proceso PresentationHost, es el nivel de seguridad ligeramente menor que cuando se carga el contenido directamente en Internet Explorer en Windows VistaWindows Vista y Windows 7Windows 7 (que todavía sería mediante 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). Esto se debe a que una aplicación de WPF independiente que usa un navegador web no proporciona la característica de seguridad adicional de modo protegido de Internet Explorer.This is because a standalone WPF application using a Web browser does not provide the additional Protected Mode security feature of Internet Explorer.

Recursos para desarrollar aplicaciones de WPF que promueven la seguridadResources for Developing WPF Applications that Promote Security

Los siguientes son algunos recursos adicionales para ayudar a desarrollar WPFWPF las aplicaciones que promueven la seguridad:The following are some additional resources to help develop WPFWPF applications that promote security:

ÁreaArea RecursoResource
Código administradoManaged code Modelos y prácticas Guía de seguridad para aplicacionesPatterns and Practices Security Guidance for Applications
CASCAS Seguridad de acceso del códigoCode Access Security
ClickOnceClickOnce Seguridad e implementación ClickOnceClickOnce Security and Deployment
WPFWPF Seguridad de confianza parcial de WPFWPF Partial Trust Security

Vea tambiénSee also