Compartir a través de


<trustInfo> (Elemento)

Actualización: noviembre 2007

Describe los permisos de seguridad mínimos requeridos para que la aplicación se ejecute en el equipo cliente.

<trustInfo>
   <security>
      <applicationRequestMinimum>
         <PermissionSet
            ID
            Unrestricted>
            <IPermission
               class
               version
               Unrestricted
            />
         </PermissionSet>
         <defaultAssemblyRequest
            permissionSetReference
         />
         <assemblyRequest
            name
            permissionSetReference
         />
      </applicationRequestMinimum>
      <requestedPrivileges>
         <requestedExecutionLevel
            level
            uiAccess
         />
      </requestedPrivileges>
   </security>
</trustInfo>

Elementos y atributos

Se requiere el elemento trustInfo, que se encuentra en el espacio de nombres asm.v2. No contiene atributos y contiene los siguientes elementos.

security

Obligatorio. Este elemento es secundario del elemento trustInfo. Contiene el elemento applicationRequestMinimum y no tiene ningún atributo.

applicationRequestMinimum

Obligatorio. Es un elemento secundario del elemento security y contiene los elementos PermissionSet, assemblyRequest y defaultAssemblyRequest. Este elemento no tiene ningún atributo.

PermissionSet

Obligatorio. Este elemento es un elemento secundario del elemento applicationRequestMinimum y contiene el elemento IPermission. Este elemento presenta los atributos siguientes.

Atributo

Descripción

ID

Obligatorio. Identifica el conjunto de permisos. Este atributo puede ser cualquier valor. Se hace referencia al Id. en los atributos defaultAssemblyRequest y assemblyRequest.

version

Obligatorio. Identifica la versión del permiso. Normalmente este valor es 1.

IPermission

Opcional. Este elemento es secundario del elemento PermissionSet. El elemento IPermission identifica en detalle una clase de permiso de .NET Framework. El elemento IPermission tiene los atributos siguientes, pero puede tener atributos adicionales que corresponden a las propiedades de la clase de permiso. Para averiguar la sintaxis de un permiso concreto, vea los ejemplos mostrados en el archivo Security.config.

Atributo

Descripción

class

Obligatorio. Identifica la clase de permiso por nombre seguro. Por ejemplo, el código siguiente identifica el tipo FileDialogPermission.

System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

version

Obligatorio. Identifica la versión del permiso. Normalmente este valor es 1.

Unrestricted

Obligatorio. Identifica si la aplicación necesita una concesión sin restricciones de este permiso. Si es true, la concesión del permiso es incondicional. Si es false, o si este atributo es indefinido, estará limitado en función de los atributos específicos del permiso definidos en la etiqueta IPermission. Considere los permisos siguientes:

<IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="USERNAME" />
<IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />

En este ejemplo, la declaración de EnvironmentPermission limita la aplicación a la lectura de la variable de entorno USERNAME, mientras la declaración de FileDialogPermission otorga a la aplicación un uso sin restricciones de todas las clases FileDialog.

defaultAssemblyRequest

Opcional. Identifica el conjunto de permisos concedido a todos los ensamblados. Este elemento es un elemento secundario del elemento applicationRequestMinimum y tiene los atributos siguientes.

Atributo

Descripción

permissionSetReference

Obligatorio. Identifica el Id. del conjunto de permisos que es el permiso predeterminado. El conjunto de permisos se declara en el elemento PermissionSet.

assemblyRequest

Opcional. Identifica los permisos para un ensamblado concreto. Este elemento es un elemento secundario del elemento applicationRequestMinimum y tiene los atributos siguientes.

Atributo

Descripción

name

Obligatorio. Identifica el nombre del ensamblado.

permissionSetReference

Obligatorio. Identifica el Id. del conjunto de permisos que requiere dicho ensamblado. El conjunto de permisos se declara en el elemento PermissionSet.

requestedPrivileges

Opcional. Este elemento es un elemento secundario del elemento security y contiene el elemento requestedExecutionLevel. Este elemento no tiene ningún atributo.

requestedExecutionLevel

Opcional. Identifica el nivel de seguridad en el que la aplicación solicita ser ejecutada. Este elemento no tiene elementos secundarios y tiene los atributos siguientes.

Atributo

Descripción

level

Necesario. Indica el nivel de seguridad que solicita la aplicación. Los valores posibles son:

asInvoker, que no solicita permisos adicionales. Este nivel no requiere ningún mensaje adicional relativo a la confianza.

highestAvailable, que solicita el nivel de permisos más alto disponible en el proceso primario.

requireAdministrator, que solicita todos los permisos de administrador.

Las aplicaciones ClickOnce sólo se instalarán con el valor asInvoker. Se producirá un error si se instalan con cualquier otro valor.

uiAccess

Opcional. Indica si la aplicación necesita obtener acceso a elementos protegidos de la interfaz de usuario. Valores son true o false, y el valor predeterminado es false. Sólo las aplicaciones firmadas deberían tener el valor true.

Comentarios

Si una aplicación ClickOnce solicita más permisos de los que el equipo cliente puede otorgar de manera predeterminada, el administrador de confianza de Common Language Runtime preguntará al usuario si desea conceder a la aplicación este nivel de confianza elevado. Si responde que no, la aplicación no se ejecutará; en caso contrario, se ejecutará con los permisos solicitados.

Todos los permisos solicitados utilizando defaultAssemblyRequest y assemblyRequest se concederán sin preguntar al usuario, si el manifiesto de implementación tiene una Licencia de confianza válida.

Para obtener más información sobre la elevación de permisos, vea Implementación y seguridad con ClickOnce. Para obtener más información acerca de la implementación de directivas, vea Información general sobre la implementación de aplicaciones de confianza.

Ejemplos

En los tres ejemplos de código siguientes se ilustran los elementos trustInfo de las zonas de seguridad con nombre predeterminado (Internet, LocalIntranet y FullTrust) para su uso en un manifiesto de aplicación de la implementación de ClickOnce.

En el primer ejemplo se ilustra el elemento trustInfo para los permisos predeterminados disponibles en la zona de seguridad de Internet.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="Internet">
          <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Access="Open" />
          <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Allowed="DomainIsolationByUser" UserQuota="10240" />
          <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Execution" />
          <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Window="SafeTopLevelWindows" Clipboard="OwnClipboard" />
          <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Level="SafePrinting" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="Internet" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>

En el segundo ejemplo se ilustra el elemento trustInfo para los permisos predeterminados disponibles en la zona de seguridad de LocalIntranet.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="LocalIntranet">
          <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="USERNAME" />
          <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Allowed="AssemblyIsolationByUser" UserQuota="9223372036854775807" Expiry="9223372036854775807" Permanent="True" />
          <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ReflectionEmit" />
          <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Assertion, Execution" />
          <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <IPermission class="System.Net.DnsPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Level="DefaultPrinting" />
          <IPermission class="System.Diagnostics.EventLogPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="LocalIntranet" />
      </applicationRequestMinimum>
    </security>
</trustInfo>

En el tercer ejemplo se ilustra el elemento trustInfo para los permisos predeterminados disponibles en la zona de seguridad de FullTrust.

<trustInfo>
  <security>
    <applicationRequestMinimum>
      <PermissionSet ID="FullTrust" Unrestricted="true" />
      <defaultAssemblyRequest permissionSetReference="FullTrust" />
    </applicationRequestMinimum>
  </security>
</trustInfo>

Vea también

Conceptos

Información general sobre la implementación de aplicaciones de confianza

Referencia

Manifiesto de aplicación ClickOnce