Seguridad (WPF)Security (WPF)

Al desarrollar aplicaciones independientes y hospedadas en un explorador Windows Presentation Foundation (WPF), 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 aplicaciones independientes se ejecutan con permisos no restringidos (conjunto de permisosFullTrust de CAS), tanto si se implementan con Windows Installer (. msi), xcopy o ClickOnce.standalone applications execute with unrestricted permissions ( CASFullTrust permission set), whether deployed using Windows Installer (.msi), XCopy, or ClickOnce. 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 un AppDomain de confianza parcial mediante el modelo de complemento .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 Introducción a los complementos de WPF.For more information, see WPF Add-Ins Overview.

las aplicaciones hospedadas en el explorador WPFWPF se hospedan en Windows Internet Explorer o Firefox, y pueden ser aplicaciones de explorador XAML (XBAP) o documentos de Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) sueltos para obtener más información, vea información general sobre las aplicaciones de explorador XAML de WPF.WPFWPF browser-hosted applications are hosted by Windows Internet Explorer or Firefox, and can be either 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 las aplicaciones hospedadas en explorador se ejecutan en un espacio aislado de seguridad de confianza parcial, de forma predeterminada, que está limitado al conjunto de permisos de zona deInternet de CAS predeterminado.browser-hosted applications execute within a partial trust security sandbox, by default, which is limited to the default CASInternet zone permission set. Esto aísla de forma eficaz las aplicaciones hospedadas en el explorador WPFWPF del equipo cliente de la misma manera que se espera que las aplicaciones web típicas estén aisladas.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 las aplicaciones independientes y hospedadas en el explorador de Windows Presentation Foundation (WPF).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

En el caso de XBAP, WPFWPF distingue dos tipos de navegación: aplicación y explorador.For XBAPs, 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 la aplicación (normalmente XAML) y la navegación del explorador (normalmente HTML) se muestra en la siguiente ilustración: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 la aplicación y la navegación del explorador.

El tipo de contenido que se considera seguro para que una aplicación XBAP navegue a está determinado principalmente por la navegación de la aplicación o la navegación del explorador.The type of content that is considered safe for an XBAP to navigate to is primarily determined by whether application navigation or browser navigation is used.

Seguridad de navegación de aplicaciónApplication Navigation Security

La navegación de la aplicación se considera segura si se puede identificar con un Pack URI, que admite cuatro tipos de contenido:Application navigation is considered safe if it can be identified with a pack URI, which supports four types of content:

Tipo de contenidoContent Type DescripciónDescription Ejemplo de URIURI Example
RecursoResource Archivos que se agregan a un proyecto con un tipo de compilación de recurso.Files that are added to a project with a build type of Resource. pack://application:,,,/MyResourceFile.xaml
ContenidoContent 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 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 sobre los archivos de datos de aplicación y los pack uri, consulte archivos de recursos, contenido y datos de aplicaciones de WPF.For more information about application data files and pack URIs, 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 elemento de Hyperlink.The user navigates by clicking a Hyperlink element.

  • Navegación mediante programación.Programmatic Navigation. La aplicación navega sin implicar al usuario, por ejemplo, estableciendo la propiedad NavigationWindow.Source.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 elemento Hyperlink que se encuentra dentro del NavigationWindowprincipal, no en un Frameanidado.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 que se está usando es http, https, Fileo mailto.The protocol being used is either http, https, file, or mailto.

Si una aplicación XBAP intenta navegar hasta el contenido de una manera que no cumple estas condiciones, se produce una SecurityException.If an XBAP 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. El software de exploración web incluye cualquier aplicación o componente que use las API WinInet o UrlMon , 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 Explorer proporciona un mecanismo por el que puede configurar la funcionalidad que puede ser ejecutada por o desde Internet Explorer, incluidas las siguientes: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:

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

  • Controles y complementos de ActiveXActiveX controls and plug-ins

  • DescargasDownloads

  • Secuencias de comandosScripting

  • Autenticación de usuarioUser Authentication

La colección de funciones que se pueden proteger de esta manera se configura en cada zona para las zonas de Internet, intranet, sitios de confianzay sitios restringidos .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 el Panel de Control.Open Control Panel.

  2. Haga clic en red e Internet y, a continuación, 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 la pestaña seguridad , seleccione la zona para la que desea establecer la configuración de seguridad.On the Security tab, select the zone to configure the security settings for.

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

    Aparece el cuadro de diálogo configuración de seguridad y puede configurar las opciones 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, en Opciones de Internet.Click Tools and then click Internet Options.

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

  • XAML dinámico.Loose XAML. Controla si Internet Explorer puede desplazarse a los archivos de XAMLXAML y perderlos.Controls whether Internet 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. Controla si Internet Explorer puede navegar y ejecutar XBAP.Controls whether Internet Explorer can navigate to and run XBAPs. (Opciones Habilitar, Deshabilitar y Preguntar).(Enable, Disable, and Prompt options).

De forma predeterminada, esta configuración está habilitada para las zonas Internet, Intranet localy sitios de confianza , y deshabilitada para la zona de sitios restringidos .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

El control de WebBrowser de WPF se puede usar para hospedar contenido Web.The WPF WebBrowser control can be used to host Web content. El control WPF WebBrowser contiene el control ActiveX WebBrowser subyacente.The WPF WebBrowser control wraps the underlying WebBrowser ActiveX control. WPF proporciona compatibilidad para proteger la aplicación cuando se usa el control de WebBrowser de WPF para hospedar contenido web que 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, las aplicaciones deben aplicar directamente algunas características de seguridad mediante el control WebBrowser.However, some security features must be applied directly by the applications using the WebBrowser control. Para obtener más información sobre el control ActiveX WebBrowser, consulte introducciones y tutoriales del control WebBrowser.For more information about the WebBrowser ActiveX control, see WebBrowser Control Overviews and Tutorials.

Nota

Esta sección también se aplica al control Frame, ya que usa el WebBrowser para navegar hasta el contenido HTML.This section also applies to the Frame control since it uses the WebBrowser to navigate to HTML content.

Si el control de WebBrowser de WPF se usa para hospedar contenido web que no es de confianza, la aplicación debe usar un AppDomain de confianza parcial para ayudar a aislar el código de la aplicación del 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 interactúa con el script hospedado mediante el método InvokeScript y la propiedad ObjectForScripting.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 Introducción a los complementos de WPF.For more information, see WPF Add-Ins Overview.

Si la aplicación usa el control de WebBrowser de WPF, otra manera de aumentar la seguridad y mitigar los ataques consiste en habilitar los controles de características 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. Los controles de características son adiciones a Internet Explorer que permiten a los administradores y desarrolladores configurar características de Internet Explorer y aplicaciones que hospedan el control ActiveX WebBrowser, que el control de WPF WebBrowser 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. Los controles de características se pueden configurar mediante la función CoInternetSetFeatureEnabled 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 sobre los controles de características, vea Introducción a los controles de características y controles de características de Internet.For more information about feature controls, see Introduction to Feature Controls and Internet Feature Controls.

Si está desarrollando una aplicación WPF independiente que usa el control de WebBrowser de WPF, WPF habilita automáticamente los siguientes controles de características para su 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.

Los controles de características se aplican mediante el proceso de creación de instancias del objeto ActiveX WebBrowser.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 preguntas más frecuentes sobre la seguridad del host de Mshtml: parte I de II y preguntas más frecuentes sobre la seguridad del 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 aplicación de explorador XAML de confianza parcial (XBAP) que incluye un control de WebBrowser de WPF en Windows Internet Explorer, WPF hospeda el control ActiveX WebBrowser en el espacio de direcciones del proceso de Internet Explorer.If you run a partial-trust 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. Puesto que el control ActiveX WebBrowser se hospeda en el proceso de Internet Explorer, todos los controles de características de Internet Explorer también están habilitados para el control ActiveX WebBrowser.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.

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 se debe a que Internet Explorer y, por tanto, el control ActiveX WebBrowser, se ejecuta en modo protegido de forma predeterminada en Windows Vista y Windows 7.This additional security is because Internet Explorer, and therefore the WebBrowser ActiveX control, runs in protected mode by default on Windows Vista and Windows 7. Para obtener más información acerca del modo protegido, consulte Descripción y funcionamiento en modo protegido de Internet Explorer.For more information about protected mode, see Understanding and Working in Protected Mode Internet Explorer.

Nota

Si intenta ejecutar una aplicación XBAP que incluye un control de WebBrowser de WPF en Firefox, mientras esté en la zona de Internet, se iniciará una SecurityException.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 los ensamblados administrados se instalan en la caché de ensamblados global (GAC), se vuelven totalmente confiables, ya que el usuario debe proporcionar permiso explícito para instalarlos.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. 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 las utilicen, deben 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 instalarse en la GAC.However, it is possible for an APTCA assembly to exhibit a security flaw after being installed into the GAC . 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 XBAP de confianza parcial sin desinstalar el ensamblado APTCA.provides a mechanism by which an APTCA assembly can be disabled for partially trusted XBAPs 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 para 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

Los ensamblados de .NET Framework principales no se ven afectados al deshabilitarlos de esta manera porque son necesarios para que se ejecuten las 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

Los archivos XAMLXAML sueltos 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 navega a los archivos XAMLXAML sueltos directamente desde el explorador, se cargan en un espacio aislado de seguridad basado en el conjunto de permisos predeterminado de la zona de Internet.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 se navega por XAMLXAML archivos sueltos 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 archivo XAMLXAML dinámico al 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, especialmente si un archivo de XAMLXAML suelto fue producido por una entidad que no es de confianza o es desconocida.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 externo, y tanto Frame como NavigationWindow se pueden configurar para aislarlos cuando se navega a.This type of content is known as external content, and both Frame and NavigationWindow can be configured to isolate it when navigated to. El aislamiento se consigue estableciendo la propiedad SandboxExternalContent en true, 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 la navegación a archivos XAMLXAML sueltos desde un NavigationWindow o una Frame en una aplicación independiente se implementa en función de la infraestructura de hospedaje del explorador de WPF, en la que se requiere el proceso PresentationHost, el nivel de seguridad es ligeramente menor que cuando el contenido se carga directamente en Internet Explorer en Windows Vista y Windows 7 (que todavía se realiza a través de 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 Vista and Windows 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

A continuación se muestran algunos recursos adicionales para ayudar a desarrollar aplicaciones WPFWPF que promuevan 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