<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:
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